9

根据3 年前的这篇文章,在 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

4 回答 4

10

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

阅读文档总是有帮助的。

此外,您的错误消息可能来自忘记在 JSP 顶部声明 spring taglib。

于 2013-07-30T15:42:06.347 回答
5

以备参考,

<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...
于 2017-06-08T12:43:22.993 回答
2

我想你想做的是。

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

然后

<dsg:sidePanelContent closePanelText="${closeMessage}">
于 2019-02-01T17:30:27.167 回答
0

如上所述,

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

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

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

于 2020-06-07T10:06:53.657 回答