3

这将有点难以解释。我正在尝试编写一个标签来组件化一堆地址字段,但是我在计算 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”的字符串。

4

1 回答 1

4

更多的研究和长时间盯着ognl 文档的结果如下:

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

似乎可以解决问题。

于 2009-05-12T16:18:08.780 回答