如何在JSTL中从属性文件中获取它之后比较该值

时间:2011-08-19 11:11:01

标签: jsp jstl

我正在使用标签进行本地化,请告诉我我在这里做错了什么 <fmt:message key="some.key" var="var1" /> 并检查这样的条件 <c:if test="${var1 == 1}"   print some thing </c:if>

该值未被打印我的意思是它没有进入if PS:我试过<c:if test="${var1 == '1'}"

2 个答案:

答案 0 :(得分:3)

这可能至少有3个原因:

  1. some.key 实际不包含值1

  2. 您没有按<%@taglib%>声明JSTL格式标记库。

  3. 您没有按<%@taglib%>声明JSTL核心taglib。

  4. 要检查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标记的属性