奇怪的s:网址行为
问题描述:
我刚刚发现了一些有趣的东西,我无法解释它。有人可以解释它。奇怪的s:网址行为
我在我的JSP文件
<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中显示参数。
在此先感谢。
答
参考the documentation ......它说value
是一个对象,而不是一个字符串。
<s:param name="homeTown" value="lanzhou"/>
会调用您的动作类的getLanzhou()
方法来尝试并填充值。
你想要的是<s:param name="homeTown" value="%{'lanzhou'}"/>
<s:param name="departYear" value="2006"/>
作品,因为非字符串属性类型不被解析,而是直接当做表达式。
@mmc谢谢。这应该是原因。好学。 – Jaiwo99 2012-07-20 12:49:25