كيف يمكنني التحقق مما إذا كان مفتاح حزمة الموارد غير موجود باستخدام علامات JSTL؟

StackOverflow https://stackoverflow.com/questions/739170

سؤال

لدي ملف مورد سيكون لديه بعض المفاتيح الاختيارية. إذا كان مفتاح المورد الاختياري غير موجود، فقد قمت بتعيين افتراضي بدلا من ذلك. يبدو أنه لا توجد طريقة سهلة لتحديد ما إذا كان مفتاح موجود في حزمة الموارد. لذلك هذا ما أفعله للوصول إليه.

<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')} للتأكد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top