JSF2 ResourceBundleLoader تجاوز؟
-
02-10-2019 - |
سؤال
أحتاج إلى حل رسائل موارد تحتوي على تعبيرات EL عند تحميلها من ResourceBundle. في الأساس لدي عدد من ملفات الخصائص التي تحتوي على النص. سيبدو بعض النص كما يلي:
welcomeText = مرحبًا #{userbean.name}
الطريقة الوحيدة الممكنة التي يمكنني رؤية هذا العمل حاليًا هي تنفيذ taglib مخصص بحيث بدلاً من القول:
<f:loadBundle var="messages" basename="application.messages"/>
أود أن أستخدم
<mytaglib:loadBundle var="messages" basename="application.messages"/>
#{messages.welcomeText}
بالنظر إلى مستخدم يحمل اسم المستخدم "user1" ، يجب إخراج هذا
Welcome User1
ثم يستخدم تنفيذي فئة مخصصة لـ ResourceBundle من شأنها أن تتجاوز المقابض ، واستخدم Elresolver لحل المتغيرات وما إلى ذلك .... الأفكار؟ اقتراحات؟ التطبيقات المتوفرة بالفعل؟
أنا أقدر مساعدتك.
المحلول
بل الاستفادة من <h:outputFormat>
و <f:param>
لعرض النص المعلمة. إنه مدعوم من MessageFormat
API, ، سيتم تطبيق نفس القواعد الموضحة في Javadoc API.
على سبيل المثال
welcomeText=Welcome {0}
مع
<h:outputFormat value="#{messages.welcomeText}">
<f:param value="#{userbean.name}" />
</h:outputFormat>
هناك هو :)