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

Dav*_*sen 10 java jsp jstl resourcebundle internationalization

我有一个资源文件,它有一些可选的键.如果不存在可选资源键,则设置默认值.似乎没有简单的方法来确定资源包中是否存在密钥.所以这就是我正在做的事情.

<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>
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

Pet*_*ton 6

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

<my:message var="title" key="${form}.title" default="default.title"/>
Run Code Online (Sandbox Code Playgroud)

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