2010-01-05 13 views
6

मैं पाठ टैगगतिशील अभिव्यक्ति के साथ 2 टेक्स्ट टैग स्ट्रैट्स, कैसे?

<s:text name="<%=talkToUsInfo.messageKey%>" /> 

लेकिन पाठ टैग पर नाम विशेषता के लिए कार्रवाई का उपयोग करके डायनामिक कुंजी आपूर्ति की जरूरत झूठे के रूप में घोषित किया जाता है (यकीन नहीं क्यों?)

मैं की तरह कुछ कैसे मिलता है यह जार फ़ाइल में tld को बदलने के बिना काम कर रहा है?

उत्तर

3

Struts documentation कैसा लग सकता है का कहना है:

इसके बजाय, जब आपके कार्रवाई XWork की फैली आप विधि gettext() है कि आप के वारिस का उपयोग करना चाहिए एक्शन सपोर्ट:

<s:textfield name="lastName" label="getText('person.lastName')" /> 

तो मैंने उदाहरण के लिए उपयोग किया

<s:property value="getText('status' + #someObject.currentStatus)" /> 

"एस: टेक्स्ट" के बजाय और यह काम करता है।

+0

इस नहीं है हाथ में सवाल को संबोधित करें। सवाल यह था कि कैसे अपनी i18n कुंजी गतिशीलता बनाने के लिए – Legna

5

OGNL

पर एक नजर डालें

यह इस

<s:text name="%{talkToUsInfo.messageKey}" /> 
+0

लिंक (http://struts.apache.org/release/2.3.x/docs/ognl.html) उपयोगी होगा – hidralisk

0

मैं OGNL और s:text का उपयोग करना पसंद करता हूं और मैन्युअल रूप से getText पर कॉल न करें। आप आम तौर पर यह करने के लिए गतिशील हिस्से जोड़ने जबकि एक निश्चित उपसर्ग को परिभाषित है, इसलिए इस तरह की कुछ बात इस्तेमाल किया जा सकता:

<s:text name="%{'student.types.'+currencyType}" /> 

केवल समय जो मैं s:property अंदर getText इस्तेमाल किया कुछ इस तरह (जो कुछ if/else की जरूरत किया गया था यदि आप s:text) उपयोग करना चाहता था: [OGNL] को

<s:property value="shouldCancelIt.equals(\"0\") ? 
          getText('label.yes'):getText('label.no')" /> 
संबंधित मुद्दे