JSP EL是否有eval函数?

JSP EL是否有eval函数?,jsp,eval,el,Jsp,Eval,El,我正在寻找一种在JSP页面中输出字符串时将其作为el进行求值的方法。(我猜当它是toString()时,在引擎盖下调用方法??) 例如,在我的页面中,如果我这样做: <title>${bean.title}</title> ${bean.title} title将是bean的一个属性,它将返回一个字符串。我想将其他EL表达式存储在bean.title中,以便对它们进行计算 因此,如果bean.title=“这是${param.pageType}页面”,显然这将在写入页

我正在寻找一种在JSP页面中输出字符串时将其作为el进行求值的方法。(我猜当它是toString()时,在引擎盖下调用方法??)

例如,在我的页面中,如果我这样做:

<title>${bean.title}</title>
${bean.title}
title将是bean的一个属性,它将返回一个字符串。我想将其他EL表达式存储在bean.title中,以便对它们进行计算

因此,如果bean.title=“
这是${param.pageType}页面
”,显然这将在写入页面之前进行计算


有什么方法可以做到这一点吗?

实际上,您在错误的方向上寻找解决方案。您应该为此使用。它还支持消息。您应该只更改代码以将消息存储在(可国际化)
.properties
文件中,而不是bean中

假设在
com.example.i18n
包中的
text.properties
文件中有以下键值项

title = This is the {0} page title=这是{0}页 然后您可以按如下方式使用它

<%@ 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>

...
它遵守法律的规定

另见:
  • -迷你教程

hm-关闭。ResourceBundle适用于模板化内容,但在本例中,我呈现的内容来自CMS——结构良好的内容,包含任意的内容列表等。此外,由于ResourceBundle的命名是基于其类名的约定,因此我会看到很多丑陋(缓慢?)的反射。我会看看是否有办法使用MessageFormat。这里的第一个关键点是MessageFormat依赖于索引/顺序而不是“键”。您还可以使用自定义
控件实现自定义
ResourceBundle
,然后使用一些
过滤器或
Servlet将其放入请求范围。在
控件中
可以从数据库加载捆绑包。您可以在这里找到一个基本示例(忽略JSF标记,然后使用前面提到的过滤器/servlet方法将它们放入请求范围,然后使用
${bundle.title}
等等)。