首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tiles Struts /EL表达式

Tiles Struts /EL表达式
EN

Stack Overflow用户
提问于 2011-11-09 16:07:01
回答 1查看 986关注 0票数 1

我使用的是带有Tiles 2.1.4的Struts 2.2.3。它工作得非常好,但是现在我正在尝试使用EL表达式,但是我不能让它工作。在Struts2中,我可以使用<s:property value="${getText('Dashboard.label')}"/>,它会从捆绑包中检索消息。我想在Tiles定义上使用相同的方法。到目前为止,我已经向web.xml添加了上下文参数

代码语言:javascript
复制
<context-param>
  <param-name>org.apache.tiles.evaluator.AttributeEvaluator</param-name>
  <param-value>org.apache.tiles.evaluator.el.ELAttributeEvaluator</param-value>
</context-param>

现在我想在定义上使用以下表达式:

代码语言:javascript
复制
<put-attribute name="pane-title"
               expression="${getText('Dashboard.label')}"
               cascade="true"/>

问题是,当我这样做时,无法创建屏幕,原因是:

找不到函数':getText‘

所以我想我漏掉了什么,但我不知道为什么。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-09 21:52:19

我认为这是行不通的;您正在尝试将OGNL表达式作为普通的旧式JSP EL进行求值。我看到了几个潜在的解决方案。

首先,我会尝试最简单的方法(尽管从长远来看,它可能不适合您的需要):使用进行getText调用的getDashboardLabel函数(或其他函数)公开操作中的值。这应该允许一个简单的属性查询${dashboardLabel}

这依赖于Tiles解析EL和当前请求解析EL的方式: S2使用一个瘦包装器将值堆栈公开给JSP。

如果这不起作用或不能满足您的需要,我认为下一种方法是看看您是否可以创建一个Tiles属性赋值器来访问值堆栈并替换org.apache.tiles.evaluator.el.ELAttributeEvaluator。我不确定这会有多容易/多难,我必须检查一下。如果您能像现有的Struts标记一样评估OGNL,那将是非常有趣的。

哦,您也可以创建一个JSP函数库;不过,我不太确定如何使用EL求值器;使用JSP,这非常容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8061953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档