2017-10-25 8 views
7

मैंने स्प्रिंग एमवीसी, जेएसपी, और टाइल्स के साथ एक कस्टम टैग लाइब्रेरी बनाई, इसलिए मेरे पास कई .tagx फ़ाइलें हैं। नई परियोजना के साथ मैंने स्प्रिंग बूट और थिमलाफ को आजमाने का फैसला किया, लेकिन मैं अपनी कस्टम लाइब्रेरी रखना चाहता हूं ...मैं थाइमेलीफ और स्प्रिंग बूट के साथ कस्टम टैग लाइब्रेरी का उपयोग कैसे कर सकता हूं?

तो क्या आप thymleaf का उपयोग कर कस्टम टैग लाइब्रेरी बनाने के लिए संभव है? या अगर मैं अपनी कस्टम टैग लाइब्रेरी किसी भी तरह से आयात कर सकता हूं?

संपादित

मैं कोड के कुछ टुकड़े जोड़ने और अधिक स्पष्ट किया जाना है। निम्नलिखित प्रयुक्त टैग मेरे अनुकूलित टैग हैं। इसलिए मैं xmlns:form="urn:jsptagdir:/WEB-INF/tags/form"

<form:create id="fu_utente" modelAttribute="utente" path="/utente" > 
      <div class="row"> 
       <div class="col-md-12 text-center"> 
        <h1 class="fa fa-user-plus" style="color:green;"><b>&#160;&#160;Stai creando un nuovo utente di tipo: <var class="varFont">&#160;${utente.ruolo}</var></b></h1> 
       </div> 
      </div> 
       <div class="row"> 
        <div class="col-xs-12 col-sm-12 col-md-4 col-md-offset-2"> 
         <field:input field="nome" id="c_utente_nome" required="true"/> 
        </div> 
        <div class="col-xs-12 col-sm-12 col-md-4"> 
         <field:input field="userName" id="c_utente_username" min="5" max="15" required="true"/> 
        </div> 
        <div class="col-xs-12 col-sm-12 col-md-8 col-md-offset-2"> 
         <field:input field="email" id="c_Utente_email" required="true" validationRegex="^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$"/> 
        </div> 
        <div class="col-xs-12 col-sm-12 col-md-4 col-md-offset-2"> 
         <field:input field="nuovaPassword" id="c_utente_password" min="6" max="15" required="true" type="password"/> 
        </div> 
        <div class="col-xs-12 col-sm-12 col-md-4"> 
         <field:input field="confermaNuovaPassword" id="c_utente_confirmPassword" required="true" type="password"/> 
        </div> 
        </div> 
       </div> 

</form> 

इस पेज के परिणाम एक फार्म के साथ, एक मानक HTML पृष्ठ है के साथ JSP के अंदर शामिल, कुछ क्षेत्रों और इसके अंदर लेबल और एक सबमिट बटन ..

इस तरह मैं जल्दी से बहुत सारे एचटीएमएल कोड लिख सकते हैं। उदाहरण के लिए प्रत्येक फ़ील्ड के लिए <label>..... </label><input....../> लिखने के बजाय, मैं अंतर्राष्ट्रीयकरण का उपयोग करके केवल <field:input......> लिख सकता हूं।

मैं थाइमेलीफ में एक ही चीज़ (और मुझे लगता है कि बहुत उपयोगी हो सकता है) करना चाहते हैं।

अन्यथा, यदि आप Thymeleaf का उपयोग कर कोड और समय बचाने के लिए से बचने के लिए एक विधि जानते हैं, कृपया मुझे .. बता

उत्तर

2

मैं समाधान/वैकल्पिक हल का एक प्रकार के रूप में निम्नलिखित का इस्तेमाल किया। फिलहाल मैंने केवल 2 सरल टैग बनाए, मुझे यकीन नहीं है कि यह अधिक जटिल टैग लागू करने का एक अच्छा तरीका है या नहीं।

इनपुट टैग

<!DOCTYPE html> 
<html xmlns:th="http://www.thymeleaf.org"> 
<body> 
    <section th:fragment="input(name, value, type, required)" class="form-group" th:switch="${required}"> 
     <label th:text="#{${name}}" th:for="${name}" class="control-label"></label> 
     <input th:case="true" th:type="${type}" th:id="${name}" th:name="${name}" th:value="${value}" class="form-control" required="required"/> 
     <input th:case="false" th:type="${type}" th:id="${name}" th:name="${name}" th:value="${value}" class="form-control"/> 
    </section> 
</body> 
</html> 

प्रदर्शन टैग

<!DOCTYPE html> 
<html xmlns:th="http://www.thymeleaf.org"> 
<body> 
    <section th:fragment="display(name, value)" class="form-group"> 
     <label th:text="#{${name}}" th:for="${name}" class="control-label"></label> 
     <div class="box" th:id="${name}" th:text="${value}"></div> 
    </section> 
</body> 
</html> 

तब मैं पैरामीटर है कि मैं चाहता हूँ गुजर इन 2 टैग का उपयोग पसंद:

<section th:replace="~{/tags/input :: input(username, *{username}, text, true)}"></section> 

और

<section th:replace="~{/tags/display :: display(nome, *{nome})}"></section> 
संबंधित मुद्दे

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