我正在寻找一种在 JSP 页面中输出字符串时将字符串计算为 el 的方法。 (我猜当它的 toString() 方法在引擎盖下被调用时???)
例如,在我的页面中,如果我这样做:
<title>${bean.title}</title>
title 将是 bean 的一个属性,它将返回一个字符串。我想在 bean.title 中存储其他 EL 表达式,以便对它们进行评估。
所以,如果 bean.title = "
This is the ${param.pageType} page
",显然会在它被写入页面之前进行评估。有没有办法做到这一点?
最佳答案
您实际上是在错误的方向上寻找解决方案。您应该使用 JSTL fmt
taglib为了这。支持parameterized消息也是如此。您应该只更改代码以将消息存储在(可国际化的).properties
中文件而不是在 bean 中。
假设您在 text.properties
中有以下键值条目放置在 com.example.i18n
中的文件包裹
title = This is the {0} page
then you can use it as follows
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setBundle basename="com.example.i18n.text" />
...
<title>
<fmt:message key="title">
<fmt:param value="${param.pageType}" />
</fmt:message>
</title>
它遵守 MessageFormat
API 的规则.也可以看看:
关于jsp - JSP EL 有 eval 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756938/