Apache 图块定义中的 EL 表达式未处理
我使用 Apache 切片进行模板化,模板的一部分是标题文本。该文本取决于页面所属的部分。每个页面都包含一个 bean,标题文本是使用该 bean 的属性构建的。每个页面的 bean 都有不同的名称。 因此,在我的 JSP 文件中,我会有这样的内容:
<div>${myBean.id} - ${myBean.name}</div>
我想在图块定义中获取该表达式,我尝试了以下操作:
<definition template="/WEB-INF/tiles/layout/mytemplate.jsp">
<put-attribute name="title" expression="${myBean.id} - ${myBean.name}" />
</definition>
在模板中我这样做:
<div class="title-header"><tiles:insertAttribute name="title" /></div>
但结果是未处理的 EL 表达式:
<div>${myBean.id} - ${myBean.name}</div>
代码已在此处简化为了保持这篇文章的简洁,但这正是我想要做的。我尝试这样做也是有原因的。
知道为什么 EL 表达式没有被处理吗?
谢谢
注意:我对 JSP 和 Apache Tiles 还很陌生,所以我可能没有使用正确的术语。
I am using Apache tiles for templating and part of the template is a header text. This text depends on the section the page belongs to. Each page contains a bean and the header text is built using the properties of that bean. The bean will have a different name for each page.
So, in my JSP file I would have something like this:
<div>${myBean.id} - ${myBean.name}</div>
I want to get that expression in the tile definition and I tried this:
<definition template="/WEB-INF/tiles/layout/mytemplate.jsp">
<put-attribute name="title" expression="${myBean.id} - ${myBean.name}" />
</definition>
And in the template I do:
<div class="title-header"><tiles:insertAttribute name="title" /></div>
But the result is the unprocessed EL expression:
<div>${myBean.id} - ${myBean.name}</div>
The code has been simplified here to keep this post concise but this is exactly what I'm trying to do. There are also reasons why I am trying to do it this way.
Any idea why the EL expresion is not being processed?
Thanks
NOTE: I am fairly new to JSP and Apache Tiles so I may not have used the correct terminology.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我只是想指出巴里的回答(在他对原帖的评论中)帮助了我。您的类路径中需要有
tiles-el.jar
(如果您想使用标准 EL;大概您需要 MVEL 或 OGNL 的相应 JAR)。Tiles 2. 关于
AttributeEvaluator
,如果您使用 Spring,可以按以下方式进行设置:Tiles 3. Spring 的
TilesConfigurer< Tiles 3 的 /code> 自动检查 JSP API 2.1 和 Tiles EL JAR 的类路径。如果它找到它们,它会自动创建一个 EL 感知的属性评估器。
I just wanted to point out that Barry's answer (in his comment on the original post) helped me out. You need to have
tiles-el.jar
on your classpath (if you want to use the standard EL; presumably you need the corresponding JARs for MVEL or OGNL).Tiles 2. Regarding
AttributeEvaluator
, here's how you can set that up if you're using Spring:Tiles 3. Spring's
TilesConfigurer
for Tiles 3 automatically checks the classpath for the JSP API 2.1 and Tiles EL JARs. If it finds them both, it automatically creates an EL-aware attribute evaluator.