में गतिशील और अनुवादित शीर्षकों का समर्थन करना मेरे पास एक स्प्रिंग एमवीसी प्रोजेक्ट है जो अपाचे टाइल्स का उपयोग करता है। मैं इतना है कि खिताब इस प्रकार का संदेश स्रोत से पढ़ा जा सकता है लागू किया है:अपाचे टाइल्स
<tiles-definitions>
<definition name="some-definition" extends="public.base">
<put-attribute name="title" value="some-definition.title" cascade="true" />
</definition>
</tiles-definitions>
और मेरे टेम्पलेट फ़ाइल में (public.base
द्वारा परिभाषित), मैं निम्नलिखित है:
<title><spring:message text="" code="${title}" /></title>
अब इस महान काम करता है स्थिर अनुवादित शीर्षक के लिए, लेकिन मैं गतिशील शीर्षक का समर्थन करना चाहता हूं, उदाहरण के लिए कंपनी का नाम प्रदर्शित करने के लिए। <c:out value="${title}" />
: इस तरह मेरे टेम्पलेट में
<tiles-definitions>
<definition name="some-definition" extends="public.base">
<put-attribute name="title" expression="${company.name}" />
</definition>
</tiles-definitions>
और फिर बस उत्पादन का शीर्षक: मैं इस तरह यह कर सकता है। हालांकि, समस्या यह है कि मेरा कोड टूट जाता है क्योंकि title
विशेषता का मान अब कोई संदेश कुंजी नहीं है।
- स्टेटिक शीर्षक, उदाहरण के लिए: मैं निम्न परिदृश्यों समर्थन करने में सक्षम होना चाहता हूँ "हमारे बारे में"
- शुद्ध गतिशील शीर्षक, उदा। "$ {company.name}"
- अनुवादित सामग्री के साथ गतिशील शीर्षक, उदा। "$ {Company.name} में आपका स्वागत है"
आदर्श रूप से, मैं अपने संदेश स्रोत के भीतर अभिव्यक्ति भाषा का उपयोग कर सकता था, लेकिन मैं इसे काम नहीं कर सका। मैंने विभिन्न समाधानों के साथ काफी प्रयोग किया है, लेकिन मुझे एक सभ्य प्रतीत नहीं होता है। अगर मैं अपने संदेश स्रोत के भीतर अभिव्यक्ति भाषा का उपयोग कर सकता हूं, तो यह आसान होगा। उदाहरण के लिए, क्या किसी भी तरह से ऐसा करना संभव होगा?
some-definition.title = Hello there, ${company.name}
और मेरे टेम्पलेट में:
<spring:message text="" code="some-definition.title" var="test" />
<c:out value="${test}" />
से काम नहीं होता है, क्योंकि यह चर के वास्तविक सामग्री से ${company.name}
आउटपुट बल्कि। क्या इस काम की तरह कुछ करने का कोई तरीका है? या क्या कोई अन्य तरीका है जिसमें मैं ऊपर सूचीबद्ध परिदृश्यों का समर्थन कर सकता हूं?
मैंने एक कस्टम जेएसटीएल टैग बनाने के बारे में सोचा था जहां मैं सादे जावा कोड (स्ट्रिंग का अनुवाद किया गया है) में एक स्ट्रिंग अभिव्यक्ति का विश्लेषण करूंगा, लेकिन मुझे एहसास हुआ कि मुझे शायद "चर के लिए मूल वस्तु निर्दिष्ट करना होगा प्रतिस्थापन "काम करने के लिए, as documented here। तो यह ऐसे गतिशील समाधान की तरह प्रतीत नहीं होता है।
वहाँ किसी भी तरह से, जिसमें मैं इस कार्य को पूरा कर सकते हैं? किसी भी प्रकार की मदद की बेहद सराहना की जाती है!
हैलो एंडी, मैं थाइमेलीफ (टाइल्स के साथ) का उपयोग कर रहा हूं और आपका प्रश्न मुझे पहली बार याद दिलाता है कि मुझे संदेशों से निपटना है: http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf। एचटीएमएल # संदेश –
लिंक के लिए धन्यवाद, @PatrickLC। आप सही हैं कि आप आमतौर पर ऐसा करते हैं, और मैंने अतीत में ऐसा किया है। हालांकि, मैं अभी भी अनिश्चित हूं कि टेक्स्ट का अनुवाद करते समय पैरामीटर को स्पष्ट रूप से पास किए बिना मेरे विशेष उपयोग मामले में इसे कैसे किया जाए। ऐसा करना भी संभव नहीं है जो मैं चाहता हूं, मुझे यकीन नहीं है। – Andy0708