如何使用JSTL标记检查资源包密钥是否不存在?

时间:2009-04-10 23:41:32

标签: 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="login.reg.signup.default.title" /> 
</c:if>

有更好的方法吗?

2 个答案:

答案 0 :(得分:6)

您可以编写自己的JSP标记来执行此操作,这样您就可以执行:

<my:message var="title" key="${form}.title" default="default.title"/>

标记实现可以是您当前的JSP语法,也可以是Java类。

答案 1 :(得分:2)

您可以使用#{messagesFactory.messages.containsKey('key')}进行检查。