首先说一下我的web应用是通过<a>标签调用struts2框架下的一个action,给该action传递一个参数,然后action通过这个参数进行相应的处理。
方法是: <a href="../actionName?phoneName=XXX">点击我</a>
问号后面是参数的名称。当然调用的action里面要有相应的变量来接受这个参数。
那么如果参数是动态生成的,比如我要传递的参数phoneName并不是一个固定的值,而是另一个action生成的。
比如我的应用中,要展示一个手机产品的页面。但是这个页面的所有信息就是一个action,比如是action1生成的,因此里面的所有数据也都是action1返回的。那么我在action1生成的页面里点击<a>标签想要调用action2,但是参数却是action1生成的参数。则可以采用如下方法:
<a href="../actionName?phoneName=<s:property value='phoneName' />">点击我</a>
这里直接使用<s:proerty>标签获得action1返回的参数。phoneName就是action1返回的一个参数名称。注意使用单引号括起来。
再有一个问题就是,如果我的参数,比如上例中的phoneName,是iphone 6,但是url地址中并不允许出现空格。因此如果phoneName直接是iphone 6,就无法正确执行该action。这时候需要用一些其他字符来代替这些特殊字符:
+ %2B
空格 %20
/ %2F
? %3F
% %25
# %23
& %26
= %3D
比如你要传递的参数是Galaxy S6 Edge+,那么正确的url应该是Galaxy%20S6%20Edge%2B
本人刚刚开始学习web开发,如有不足请指正,谢谢!