Java fmt:消息默认值

Java fmt:消息默认值,java,jsp,jstl,Java,Jsp,Jstl,如果未定义键,是否有方法输出默认值 <fmt:message key='some.key' /> 我希望有一个default属性,但它不是。我找到了这个解决方法 <str:replace replace="undef (some.key)" with="some default value"> <fmt:message key='some.key' /> </str:replace> 哪一个不是最漂亮的,我想。使用上面Balus

如果未定义键,是否有方法输出默认值

<fmt:message key='some.key' />


我希望有一个
default
属性,但它不是。

我找到了这个解决方法

<str:replace replace="undef (some.key)" with="some default value">
    <fmt:message key='some.key' />
</str:replace>


哪一个不是最漂亮的,我想。

使用上面BalusC的提示,可以很容易地检查缺少键时返回的已知字符串。不需要雅加达字符串库

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

...

<fmt:bundle basename="myBundle">
    <fmt:message key="some.key" var="myVar"/>
</fmt:bundle>
<c:if test = "${pageScope.myVar == '???some.key???'}">
    <c:set var="myVar" value="My Default Value"/>
</c:if>

...

的可能重复项很接近,但不相同。例如,我的变通方法不适用于另一个问题。显然,您使用的是自定义本地化上下文。当找不到某个键时,JSTL默认值将返回该键。您使用的是JSP/Servlet之上的框架吗?也许你需要在那个角落寻找正确的解决方案。我真的无法控制这一部分。对于
fmt:message
输出
undef(some.key)
,这不是标准吗?不,不是。顺便问一下,
来自哪个标记库?我从任何taglib/framework中都看不出这一点。是土生土长的吗?也许同一个框架也提供了定制的本地化上下文。