Jsp 相当于Struts 1.x“;bean:define";标签?

Jsp 相当于Struts 1.x“;bean:define";标签?,jsp,spring-mvc,struts,jstl,javabeans,Jsp,Spring Mvc,Struts,Jstl,Javabeans,我正在将一个旧的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%>"

我正在将一个旧的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%>"
title=“”
为了去掉Struts标记,我不确定等价的JSTL(或者它是否应该是JSTL)标记应该是什么,有人能提供一个建议吗?我尝试过使用JSTL
set
,和
jsp:useBean
,但要么它们走错了路,要么我实现得不正确


谢谢你的建议

您可以使用${}符号访问定义的bean

<%
  title = ${example_title}
%>

如果要打印,可以使用
标记

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


JSTL上的快速链接使用
fmt:message的
var
属性

<fmt:message bundle="${example_Labels}" key="example_field" var="example_title" />
或者,如果您仍然使用JSP-2.0之前的版本,其中不支持模板文本中的EL(请考虑升级…),则使用
显示它:

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

我试过这样做:测试时我没有收到任何JSP错误,但页面呈现时标题值为空。这几乎就像var=“example\u title”没有被识别一样。该项目是JSP-2.0之前的版本,因为它将“${example_title}”作为一个文本字符串值,并将其用作标题。那么它可能不在同一范围内。您是否在包含页面(
jsp:include
)中显示它?如果是,请在
fmt:message
中添加
scope=“request”
。include页面使用相同的请求。想法不错,但它位于同一页面内。以防万一,我尝试使用scope=page/request/session/application获得相同的结果。title=部分在标记中会有区别吗?所以我试着:你应该用
来代替。我把这个作为正确的答案。事实证明,该标记在使用${example_title}或“>呈现输出时存在一些问题,否则它会正常工作。如果我能找到解决该标记问题的方法,我会将其发布到此处供其他人使用。感谢您的输入!EL在scriptlet中不起作用,并且您忘记了c:out中的引号。
title="<c:out value="${example_title}" />"