2012-04-16 36 views
11

Tôi đã theo định nghĩa bean cho DAO tôi -Làm thế nào để tiêm các thuộc tính chuỗi có chứa <character vào Spring bean?

<bean id="userDao" class="UserDao"> 
<property name="dataSource" ref="dataSource" /> 
<property name="queryPurgeInvalidReferrals" value="delete from reference where date < ?" /> 
</bean> 

Tôi nhận lỗi - Giá trị của "giá trị" thuộc tính liên quan đến một loại yếu tố "tài sản" không được chứa các '<' nhân vật.

+1

để thoát khỏi giá trị < để hoạt động giống như trong tài liệu XML. – Phani

Trả lời

17

Kể từ mùa xuân cấu hình là một tập tin XML, bạn cần phải thoát khỏi < theo cú pháp XML:

<property name="queryPurgeInvalidReferrals" 
    value="delete from reference where date &lt; ?" /> 
1

Sử dụng unicode như

<property name="queryPurgeInvalidReferrals" value="delete from reference where date &#x3c; ?" /> 
12

Hãy thử với điều này:

<property name="queryPurgeInvalidReferrals"> 
    <value><![CDATA[delete from reference where date < ?]]></value> 
</property> 
+0

Tôi không nghĩ rằng nó hoạt động. Vì value là một thuộc tính, bạn có thể định nghĩa là phần tử bên trong property.Though tôi không nhìn vào Spring XSD hay DTD. – Phani

+0

Spring XSD cho phép tôi làm điều đó. Nhưng tôi đã không cố đọc phần tử giá trị. Đây là tất cả những gì có thể đi vào phần tử '': '(mô tả ?, (meta | bean | ref | idref | giá trị | null | mảng | danh sách | đặt | bản đồ | đạo cụ | không gian tên: uri =" ## other ")?) '. – adarshr

+0

Thẻ 'property' có thể có giá trị là thuộc tính hoặc là phần tử con. Đối với các giá trị chuỗi, nó không có sự khác biệt. – pap

0

trong chuỗi giá trị < của bạn phải được thay thế bằng &lt;

value="delete from reference where date < ?" 
Các vấn đề liên quan