【问题标题】:Combine c:out tag with bean:message将 c:out 标签与 bean:message 结合起来
【发布时间】:2012-11-21 13:21:58
【问题描述】:

假设我有一个包含动态标签的变量,我该如何实现这样的事情(导航是请求范围属性):

<fmt:message  var='<c:out value="${navigation}"/>'/>

或者

<bean:message  var='<c:out value="${navigation}"/>'/>

其实到现在都是这样处理的:

<%
    String navigation = (String)request.getAttribute("navigation");
%>

<bean:message  var='navigation'/>

但是这种做事方式在十年前还是不错的。

【问题讨论】:

  • 意图真的是通过${requestScope[navigation]}左右来展示吗?为什么不直接使用var="navigation",然后再使用${navigation} 来显示它?

标签: java jsp jstl el


【解决方案1】:

类似:

<c:set var="temp"><c:out value="${navigation}"/></c:set>
<fmt:message var='${temp}'/>

您确定要使用var= 而不是key=,使用var= 属性将消息的值放入名为该值的变量中,并且不会将其输出到响应中。

<c:set var="temp">something-complex-<c:out value="${navigation}"/></c:set>
<fmt:message key='${temp}'/>

注意这也可以写成:

<fmt:message key='something-complex-${navigation}'/>

【讨论】:

  • 是的,你是对的,我对 var/key 的行为感到困惑 :)
猜你喜欢
  • 2017-04-06
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 2021-09-28
  • 2012-01-14
  • 2010-09-22
  • 1970-01-01
相关资源
最近更新 更多