0

我刚刚发现了一些有趣的东西,我无法解释。有人可以解释一下。

我在我的jsp文件中定义了一个url

<s:url var="test" action="Home.action" escapeAmp="false">
    <s:param name="departYear" value="2006"/>
    <s:param name="homeTown" value="lanzhou"/>
</s:url>
<p><s:property value="test"/></p>

结果是/path/to/action/Home.action?departYear=2006,如果我更改了第二个参数<s:param name="homeTown" value="123456"/>,那么它会正确显示我并/path/to/action/Home.action?departYear=2006&homeTown=123456没有尝试打印,url并且它在使用更多参数时总是可以正常工作。它根本没有引发任何问题。我只是好奇,为什么它不适用于s:property.

顺便说一句,我也更改了 2 个参数的顺序,它也没有在 url 中显示参数。

提前致谢。

4

1 回答 1

0

请参阅文档...它说这value是一个 Object,而不是一个字符串。

<s:param name="homeTown" value="lanzhou"/>将调用getLanzhou()您的操作类的方法来尝试填充该值。

你想要的是<s:param name="homeTown" value="%{'lanzhou'}"/>

<s:param name="departYear" value="2006"/>之所以有效,是因为非字符串属性类型不被解析,而是直接作为表达式求值。

于 2012-07-20T12:00:07.810 回答