2013-05-23 7 views
8

मैं सेट टैगStruts 2 गतिशील चर

<s:set var="myNum" value="numConst" /> 
<s:set var="number" value="%{getText('@[email protected]'+#myNum)}" /> 

numConst का उपयोग कर एक गतिशील मूल्य है कि डेटाबेस से लिया गया वापस आ जाएगी struts2 में एक गतिशील चर बनाने के लिए कोशिश कर रहा हूँ। उदाहरण के लिए, यदि मान शून्य है तो संख्या @[email protected]

मैंने अपनी जावा कक्षा में मूल्य निर्धारित किया है ताकि @[email protected]9 वापस आ जाए।

अब तक, मान पाठ टैग में कोई समस्या नहीं के साथ प्रदर्शित किया जा सकता है, तो मैं

<s:text name="%{getText(#number)}" /> 

का उपयोग यह 9 वापस आ जाएगी, लेकिन यह गलत रूप में प्रदर्शित जब मैं संपत्ति टैग

<s:property value="%{getText(#number)}" /> 
<s:property value="%{#number}" /> 
<s:property value="#number" /> 
<s:property value="%{getText('%{getText(#number)}')}" /> 

उपयोग करने की कोशिश कौन सा उपरोक्त सभी उदाहरण मुझे @[email protected] के रूप में मूल्य देंगे। कारण मैं संपत्ति टैग से मूल्य प्राप्त करने की कोशिश है, क्योंकि मैं तो मैं उन्हें में उपयोग कर सकते हैं कि कैसे मान प्रदर्शित करने के पर सही तरीका प्रतिलिपि बनाना चाहते हैं, तो नीचे दिए गए उदाहरण की तरह टैग:

<s:if test="#number == 9"> 
    do something 
</s:if> 

या

<s:if test="%{getText(#number)} == 9"> 
    do something 
</s:if> 

CommonConstant:

package xxx; 

public abstract class CommonConstant { 
    public static final int NINE = 9; 
    public static final int NINEONE = 91; 
    public static final double ADMIN_PGM = 1.4; 
    // ... omitted ... 
} 

किसी को भी मेरी मदद कर सकते हैं?

+0

और 'कॉमनकॉन्स्टेंट' क्या है? क्या यह 'enum' है? क्या आप कोड दिखा सकते हैं। –

+1

'getText' विधि स्थानीयकृत टेक्स्ट प्राप्त करने के लिए है। आप इसका उपयोग क्यों कर रहे हैं? –

+0

'पैकेज xxx; सार्वजनिक अमूर्त वर्ग कॉमनकॉन्स्टेंट { \t सार्वजनिक स्थिर अंतिम int NINE = 9; \t सार्वजनिक स्थिर अंतिम int NINEONE = 91; \t सार्वजनिक स्थैतिक अंतिम डबल ADMIN_PGM = 1.4; \t ... छोड़ा गया ... } ' –

उत्तर

6

यह एक कामकाज की तरह लगता है लेकिन आप स्ट्रिंग का मूल्यांकन करने के लिए attr का उपयोग कर सकते हैं।

<s:set var="myNum" value="numConst" /> 
<s:set var="number" value="'@[email protected]'+#myNum" /> 

<s:property value="#attr[#number]"/> 

<s:if test="#attr[#number] == 9"> 
    do something 
</s:if> 
+0

वाह यह काम करता है .. धन्यवाद आदमी! –

6

आप अभिव्यक्ति के परिणाम का मूल्यांकन करने के लिए कोष्ठक अभिव्यक्ति का उपयोग कर सकते हैं। OGNL भाषा गाइड के Expression Evaluation पर

<s:if test="#number(0) == 9"> 
    <s:property value="%{#number(0)}" /> 
</s:if> 

देखो।

+0

हाँ यह भी काम करता है .. धन्यवाद –

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