Java 如何使用JSTL标记检查资源包密钥是否不存在?
我有一个资源文件,将有一些可选的密钥。如果可选的资源键不存在,我将设置一个默认值。似乎没有简单的方法来确定资源包中是否存在密钥。所以,这就是我要做的,以摆脱它Java 如何使用JSTL标记检查资源包密钥是否不存在?,java,jsp,internationalization,jstl,resourcebundle,Java,Jsp,Internationalization,Jstl,Resourcebundle,我有一个资源文件,将有一些可选的密钥。如果可选的资源键不存在,我将设置一个默认值。似乎没有简单的方法来确定资源包中是否存在密钥。所以,这就是我要做的,以摆脱它 <fmt:message var="title" key="login.reg.signup.${signupForm.regfrom}.title" /> <c:if test='${fn:startsWith(title, "??")}'> <fmt:message var="title" key
<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')}
进行检查。这只适用于支持EL 2.2的环境(在2009年4月还不存在)。