奇怪的是:网址行为

时间:2012-07-20 08:01:14

标签: url struts2

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

我在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个参数的顺序,并且它也没有在网址中显示参数。

提前致谢。

1 个答案:

答案 0 :(得分:0)

请参阅the documentation ...它说 value是一个对象,而不是一个字符串。

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

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

<s:param name="departYear" value="2006"/>有效,因为非String属性类型未被解析,而是直接作为表达式计算。