2013-03-05 7 views
5
में संस्थाओं के साथ टैग 'चुनें'

मैं चुनिंदा टैग कि इस तरह दिखता है के साथ एक फार्म बनाने रहा हूँ का उपयोग करना:Thymeleaf

<form th:object="${version}" method="post" class="form-horizontal"> 
    ... 
    <div class="control-group" th:classappend="${#fields.hasErrors('product')} ? 'error'"> 
     <label class="control-label" for="product" th:text="#{version.product}">Product</label> 
     <div class="controls"> 
      <select id="product" th:field="*{product}"> 
       <option value="" th:text="#{common.select.prompt}"></option> 
       <option th:each="p : ${productList}" th:value="${p.id}" th:text="${p.name}"></option> 
      </select> 
      <span class="help-inline" th:errors="*{product}"></span> 
     </div> 
    </div> 
    ... 
</form> 

DomainClassConverterSpring Data JPA के वर्ग स्वतः-रूपांतरण इकाई Product को id चयनित करने में मदद करता है जब मैं फॉर्म जमा करें। product भी शून्य नहीं होना चाहिए (मैं Version कक्षा में product मैदान पर @NotNull उपयोग कर रहा हूँ

समस्या यह है कि मेरे पास है

-। जब मैं वापस आने के डेटा को संपादित करने के लिए, Product चयनित नहीं है

। अगर मैं इस तरह select (th:field और th:errors) को संशोधित: <-- p.s. is not a sad smile

  <select id="product" th:field="*{product.id}"> 
       <option value="" th:text="#{common.select.prompt}"></option> 
       <option th:each="p : ${productList}" th:value="${p.id}" th:text="${p.name}"></option> 
      </select> 
      <span class="help-inline" th:errors="*{product.id}"></span> 

फिर जब मैं वापस आने के लिए इसे संपादित करने के यह चयनित हो जाता है, लेकिन सत्यापनकर्ता काम नहीं करता है (product हमेशा तत्काल होता है, भले ही चयनित आईडी null है)।

यह एक बहुत ही सामान्य परिदृश्य (सूची से एक इकाई का चयन) की तरह दिखता है, लेकिन मुझे कोई अच्छा दिखने वाला उदाहरण नहीं मिल रहा है। कृपया गुप्त ज्ञान साझा करें।

+0

इसे संपादित करने के लिए वापस आने का क्या मतलब है? –

+0

मैं संस्करण इकाई बनाने और संपादित करने के लिए एक ही पृष्ठ का उपयोग करता हूं –

उत्तर

2

हल हो गया। समस्या मौजूद थी क्योंकि मैंने equals() और hashCode() विधियों को ओवरराइड नहीं किया था।

संबंधित मुद्दे