كيف يمكنني التحقق مما إذا كان مفتاح حزمة الموارد غير موجود باستخدام علامات JSTL؟
-
09-09-2019 - |
سؤال
لدي ملف مورد سيكون لديه بعض المفاتيح الاختيارية. إذا كان مفتاح المورد الاختياري غير موجود، فقد قمت بتعيين افتراضي بدلا من ذلك. يبدو أنه لا توجد طريقة سهلة لتحديد ما إذا كان مفتاح موجود في حزمة الموارد. لذلك هذا ما أفعله للوصول إليه.
<fmt:message var="title" key="login.reg.signup.${signupForm.regfrom}.title" />
<c:if test='${fn:startsWith(title, "??")}'>
<fmt:message var="title" key="login.reg.signup.default.title" />
</c:if>
هل هناك طريقة أفضل؟
المحلول
يمكنك كتابة علامة JSP الخاصة بك التي تفعل ذلك، بحيث يمكنك بعد ذلك:
<my:message var="title" key="${form}.title" default="default.title"/>
يمكن أن يكون تنفيذ العلامة إما بناء جملة JSP الحالية، أو فئة Java.
نصائح أخرى
يمكنك استعمال ال #{messagesFactory.messages.containsKey('key')}
للتأكد.
لا تنتمي إلى StackOverflow