我正在使用标签进行本地化,请告诉我我在这里做错了什么
<fmt:message key="some.key" var="var1" />
并检查这样的条件
<c:if test="${var1 == 1}"
print some thing
</c:if>
该值未被打印我的意思是它没有进入if
PS:我试过<c:if test="${var1 == '1'}"
答案 0 :(得分:3)
这可能至少有3个原因:
some.key
实际不包含值1
。
您没有按<%@taglib%>
声明JSTL格式标记库。
您没有按<%@taglib%>
声明JSTL核心taglib。
要检查some.key
的实际值,请执行以下操作:
<fmt:message key="some.key" var="var1" />
<p>value of some.key is: ${var1}</p>
为确保正确声明JSTL格式和核心标记库,请确保根据JSTL taglib documentation在相关JSP文件的顶部显示以下行:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
要验证这一点,请在webbrowser中打开JSP页面,右键单击查看源以查看生成的HTML输出。您应该看到没有单件的JSTL / EL代码。
答案 1 :(得分:1)
如果fmt:message标记位于fmt:bundle标记之外(或者fmt:bundle标记完全丢失),则可能是另一个原因
你应该有这样的东西:
<fmt:bundle basename="path to resource bundle">
...
<fmt:message key="some.key" var="var1" />
....
</fmt:bundle>
您还可以直接将捆绑包指定为fmt:message标记的属性