2015-06-09 3 views
7

में गतिशील विशेषताएं मैं गतिशील विशेषताओं के साथ एक टैग चाहता हूं, जैसे सरल HTML टैग, उदा। कुछ इस तरह:एक जेएसपी टैग

<tags:superTag dynamicAttribute1="value" someOtherAttribute="valueOfSomeOther"/> 

और टैग के अपने कार्यान्वयन में मैं कुछ इस तरह करना चाहते हैं:

public class DynamicAttributesTag { 

    private Map<String,String> dynamicAttributes; 

    public Map<String, String> getDynamicAttributes() { 
     return dynamicAttributes; 
    } 

    public void setDynamicAttributes(Map<String, String> dynamicAttributes) { 
     this.dynamicAttributes = dynamicAttributes; 
    } 

    @Override 
    protected int doTag() throws Exception { 
     for (Map.Entry<String, String> dynamicAttribute : dynamicAttributes.entrySet()) { 
      // do something 
     } 
     return 0; 
    } 
} 

मैं कहना है कि ये गतिशील विशेषताओं में हाथ से लिखा जा जा रहे हैं चाहते हैं एक जेएसपी, बस ${someMap} जैसे मानचित्र के रूप में पास नहीं हुआ। तो क्या यह हासिल करने का कोई तरीका है?

+1

अगर मैं तुम्हें सही ढंग से समझ यह, टीएलडी में '<गतिशील-विशेषताएं> 'टैग के साथ किया जा सकता है। "जेएसपी गतिशील विशेषताओं उदाहरण" के लिए Google आपको कई आशाजनक परिणाम देता है। – icke

+0

@icke हां, यह वही है जो मुझे चाहिए। आपका बहुत बहुत धन्यवाद। आप इसे एक उत्तर के रूप में जोड़ सकते हैं और मैं इसे स्वीकार करूंगा, लेकिन क्या आप भविष्य के पाठकों के लिए कुछ उदाहरण भी प्रदान कर सकते हैं? असल में यह सिर्फ इंटरफ़ेस डायनामिक एट्रिब्यूट्स को लागू कर रहा है और टीएलडी में <गतिशील-विशेषताएँ> टैग करता है। –

उत्तर

4

आप अपने टीएलडी में डायनामिक विशेषताएं सक्षम इसलिए की तरह करना होगा:

<tag> 
    ... 
    <dynamic-attributes>true</dynamic-attributes> 
</tag> 

और फिर अपने टैग हैंडलर वर्ग DynamicAttributes इंटरफ़ेस को लागू है:

public class DynamicAttributesTag extends SimpleTagSupport implements DynamicAttributes { 
    ... 
    public void setDynamicAttribute(String uri, String localName, Object value) throws JspException { 
     // This gets called every time a dynamic attribute is set 
     // You could add the (localName,value) pair to your dynamicAttributes map here 
    } 
    ... 
} 
संबंधित मुद्दे