当 url 地址中含有 参数 时 ,若参数值是一个 含有 参数的 地址时 , 应警惕 ,如
index/goIndex!login?backUrl=/shop/goShop!go?a1=1&a2=2&a3=3;
当参数backUrl 的值 仍然含有 参数时 , 根据url 解析方式 , 会出现 如下情况
url 地址:index/goIndex!login
参数 backUrl : /shop/goshop!go?a1=1
参数 a2 : 2
参数 a3 : 3
会解析成 3个参数 ,而并不是 我们 想要 的 backUrl=/shop/goShop!go?a1=1&a2=2&a3=3; 这是因为url 解析默认以& 参数分隔符 ,所以在出现一个& 时 ,
会把& 的以前的当成一个参数 。 解决方式 很多 ,最好不要 使用 拼接url 的方式 传参,尤其是参数值仍然为 地址时。js 中可以使用 异步ajax ,或者对参数 编码。
获得使用 from 表单提交 参数。
1. 使用 chain 和 redirectAction
写法 :
<result name="success" type="chain"> 或者 redictAction
<param name="namespace">/go</param>
<param name="actionName">goIndex</param>
<param name="method">init</param> <!--namespace和method 都可以省略 ,默认当前和excute;
<param name="backurl">cc</param>
</result>
主要注意: 当使用 chain 时 由于某种原因 , 可能需要 当前 action 必须配置 backurl 属性和getter/setter方法, 才能在下个action 中
获得 backurl 的值。 使用 redirectAction 则不需要在 当前aciton 中必须配置 backurl 属性。
使用 redirect 则是直接写地址 <result type="redirect" name="success">/go/goIndex!init.action?backurl=cc</result>