2015-09-26 5 views
6

मेरे पास वसंत में निम्न रूप है जो त्रुटि संदेश दिखा रहा है। मैं सोच रहा हूं कि मुझे वसंत का उपयोग कब करना चाहिए: बांधना? वह क्या करता है जो उसमें अंतर करता है? मैंने इन पृष्ठों का अध्ययन किया a, b लेकिन मैं अभी भी परेशान हूं।वसंत के बीच क्या अंतर है: बाध्य और रूप: त्रुटियां?

<form:form method="post" 
    action="http://localhost:8080/project/calculator/process" 
    modelAttribute="keyPadForm"> 
     Name1: <form:input type="text" path="name1" /> 
     <form:errors path="name1" /> 

<form:form method="post" 
    action="http://localhost:8080/project/calculator/process" 
    modelAttribute="keyPadForm"> 
    <spring:bind path="name1"> 
     Name1: <form:input type="text" path="name1" /> 
     <form:errors path="name1" /> 
    </spring:bind> 

उत्तर

2

अपने दूसरे मामले में, spring:bind टैग अप्रचलित, है वाक्यात्मक चीनी का एक प्रकार है आपकी पहली प्रपत्र

<form:form method="post" 
    action="http://localhost:8080/project/calculator/process" 
    modelAttribute="keyPadForm"> 
     Name1: <form:input type="text" path="name1" /> 
     <form:errors path="name1" /> 

, और equiva form टैग पुस्तकालय बल्कि केवल आम HTML प्रपत्र टैग का उपयोग, बिना उधार, spring:bind पर आधारित होगा और कुछ ऐसा दिखाई देगा:

<spring:nestedPath path="keyPadForm"> 
    <form method="post" action="http://localhost:8080/project/calculator/process"> 
    <spring:bind path="name1"> 
     Name1:<input type="text" name="${status.expression}" value="${status.value}"> 
     <span class="fieldError">${status.errorMessage}</span> 
    </spring:bind> 
    </form> 
</spring:nestedPath> 

परिदृश्यों जहाँ आप एक फर्क कर सकते हैं कर रहे हैं, उदाहरण के लिए form:input हमेशा एक दो तरह से बाँध है, इसलिए मूल्य सर्वर और वर्तमान मान प्रदर्शित किया है, जहां spring:bind साथ के रूप में आप एक एक तरह से बाँध प्राप्त कर सकते हैं करने के लिए भेजा जाता है, केवल सर्वर के लिए भेज रहा है, उदा मूल्य को छोड़ते हुए द्वारा <input type="text" name="${status.expression}">, लेकिन मुख्य सार है कि form टैग पुस्तकालय एक और अधिक सुविधाजनक बाँध संबंधित टैग

2

spring:bind के साथ, आप अगर name1 क्षेत्र में कोई त्रुटि है की जाँच करने के लिए, और सशर्त अलग CSS वर्ग प्रदर्शित ${status.error} उपयोग कर सकते हैं प्रदान करता है।
त्रुटि संदेश अभी भी form:errors के माध्यम से प्रदर्शित किया जाता है, लेकिन इस तरह से आप अधिक नियंत्रण मिलता है।
उदाहरण के लिए:

<form:form method="post" modelAttribute="userForm" action="${userActionUrl}"> 
    <spring:bind path="name"> 
    <div class="form-group ${status.error ? 'has-error' : ''}"> 
     <label>Name</label> 
     <form:input path="name" type="text" id="name" /> 
     <form:errors path="name" /> 
    </div> 
    </spring:bind> 
</form:form> 

और आप इस Spring MVC Form – Check if a field has an error

का उल्लेख कर सकते
संबंधित मुद्दे