是否等效于Struts 1.x“ bean:define”标签?


问题内容

我正在将旧的Struts 1.x应用程序转换为Spring
MVC,并且在某些JSP页面中,该bean:define标签用于从资源束中获取字符串,然后在该页面的后面使用:

<bean:define id="example_title"><fmt:message bundle="${example_Labels}" key="example_field"/></bean:define>

然后再:

title="<%=example_title%>"

我不确定等效的JSTL(或者甚至应该是JSTL)标记是什么,以便取消Struts标记,有人可以提出建议吗?我尝试过使用JSTL
setjsp:useBean,但是它们是错误的方法,或者我没有正确实现它们。

感谢您的任何建议!


问题答案:

使用的var属性fmt:message

<fmt:message bundle="${example_Labels}" key="example_field" var="example_title" />

这基本上将与键关联的值导出到名为的页面范围变量中example_title。您可以稍后在页面上使用常用的EL方法进行打印:

title="${example_title}"

或者,如果您仍在JSP-2.0之前的版本中,不支持模板文本中的EL(请考虑升级..),请使用<c:out>来显示它:

title="<c:out value="${example_title}" />"