Struts ognl表达式来评估表达式的结果

时间:2009-05-12 16:05:04

标签: jsp struts2 ognl

解释这有点棘手。我正在尝试编写一个标记来组合一堆地址字段,但是我在制作ognl表达式时遇到了麻烦。

预期用途:     

member.address映射到Address对象(没有太多切割器)。

我的标签(最简单的版本):

<%@taglib prefix="s" uri="/struts-tags" %>
<%@attribute name="name" required="true" rtexprvalue="true" type="java.lang.String" %>
<s:push value="%{#attr.name}">
    Address line 1:
    <s:property value="line1"/>
</s:push>

我认为问题是<s:push value="%{#attr.name}"/>实际上并没有将member.address的结果推送到堆栈上,只是推送了一个值为'member.address'的字符串。

1 个答案:

答案 0 :(得分:4)

进一步研究并长时间盯着ognl documentation导致以下结果:

<%@taglib prefix="s" uri="/struts-tags" %>
<%@attribute name="name" required="true" rtexprvalue="true" type="java.lang.String" %>
<s:push value="%{(#attr.name)(#attr)}">
   Address line 1:
   <s:property value="line1"/>
</s:push>

似乎很有效。