我刚发现一些有趣的东西,我无法解释。有人可以解释一下。
我在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个参数的顺序,并且它也没有在网址中显示参数。
提前致谢。
答案 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属性类型未被解析,而是直接作为表达式计算。