JSTL标记中的Spring消息

时间:2013-07-30 14:09:39

标签: spring jsp spring-mvc jstl

根据这个post from 3 years ago,在jstl标签中显示spring消息的唯一方法是将它包装在<c:set var="someVar">中,它确实“有效”,但它看起来很不理想。

快进3年,这仍然是解决这个问题的唯一方法吗?

这是我的代码

有效,但不是“理想”

<c:set var="closeMessage">
    <spring:message code='lman.ilr.closeItemDetail'/>
</c:set>
<dsg:sidePanelContent closePanelText="${closeMessage}">

不起作用,返回<spring:message code='lman.ilr.closeItemDetail'/>

的字符串
<dsg:sidePanelContent closePanelText="<spring:message code='lman.ilr.closeItemDetail'/>">

4 个答案:

答案 0 :(得分:9)

spring message标记,就像fmt:message一样,有一个var属性,可用于存储消息而不是显示它。

阅读the documentation总是有帮助的。

另外,你的错误信息可能来自于在JSP的顶部声明spring taglib。

答案 1 :(得分:4)

以供参考,

<c:choose>
  <c:when test="${serviceVO.id eq 0}"> 
     <spring:message code="label.service.createservice" var="buttonName"/> 
  </c:when> 
  <c:otherwise>
    <spring:message code="label.updateservice" var="buttonName"/> 
  </c:otherwise>
</c:choose>

<c:out value="${buttonName}"> //Prints the desired value...

答案 2 :(得分:0)

我想你想做的事是。

<spring:message code='lman.ilr.closeItemDetail' var="closeMessage"/>

然后

<dsg:sidePanelContent closePanelText="${closeMessage}">

答案 3 :(得分:0)

如上所述,

<spring:message code='lman.ilr.closeItemDetail' var="closeMessage"/>

<dsg:sidePanelContent closePanelText="${closeMessage}">

有效,因为标签具有用于上述目的的属性“ var”。 通过Spring Boot应用程序进行了测试,并且可以正常工作。