問題描述: 在struts環境下,不能跳轉到理想的url地址javascript
好比登錄以後但願跳轉到 http://w.xxx.com/system/home_enter.actionjava
而實際上跳轉到了 http://w.xxx.com/demo/system/home.actionweb
找了好久問題的根源,最後發現原來是配置了redirectjsp
<result name="success" type="redirect">/system/home_enter.action</result>url
查了一下struts2 redirect源碼,發現他默認會帶上 request.getContextPatch();ip
想了好久,想從代碼入手,最終無果。資源
最後只好選擇了一種折中的辦法。get
去掉 type="redirect" 改爲jsp頁面源碼
<result name="success" >/web/business/system/login/success.jsp</result>io
而後在頁面上經過javascript腳本進行人爲的跳轉。
<script>
function loadHome()
{
top.window.location="/system/home_enter.action";
}
</script>
</head>
<body class="login-layout light-login">
<div>正在加載資源...請稍後...</div>
<script>
loadHome();
</script>
</body>
這樣最終解決了這個棘手的問題。
後面還發現一個相似的問題,可是有不少action用到了,不太好改,研究一下代碼,實際上都是調用的模板類的enter方法,經過修改代碼來指定調用enter方法來解決此問題。