一尘不染

评估JSTL标记内的Struts值

jsp

我目前正在为基于Struts 2的应用程序开发语言包。该语言包在属性文件中定义,前端JSP可以通过JSTL(FMT标记)对其进行访问。

我正在尝试实现类似String格式的功能,即将Struts值插入通过FMT标签检索的句子字符串中。

我的属性文件中定义了什么:

userprofile.link.text = <a href="{0}">Click here</a> to view your profile page.

从JSP的角度来看,

<fmt:message key="userprofile.link.text">
   <fmt:param value='/profile/<s:property value="userBean.id"/>'/>
</fmt:message>

但是,链接无法正确呈现。我该如何实现?


阅读 254

收藏
2020-06-10

共1个答案

一尘不染

  1. JSTL使用${}(EL);

  2. Struts2 ValueStack通过StrutsRequestWrapper暴露给JSTL :

所有Struts请求都使用此类包装,该类提供了简单的JSTL可访问性。这是因为JSTL使用请求属性,所以此类委托值堆栈[…]

那么这应该足够了:

<fmt:message key="userprofile.link.text">
    <fmt:param value='/profile/${userBean.id}'/>
</fmt:message>
2020-06-10