2019-9-10 seo達人
Struts2中轉(zhuǎn)發(fā)和重定向的區(qū)別以及實現(xiàn)方法
最近遇到一個問題,就是在設置struts2的攔截器以后,想要訪問必須登錄,想要的效果是轉(zhuǎn)到登錄頁面,也就是轉(zhuǎn)到xxx.jsp,但是發(fā)現(xiàn)沒有轉(zhuǎn)到,而是action結(jié)尾的,后來發(fā)現(xiàn)是因為在struts.xml里面配置的時候,沒有在result中配置type屬性,struts默認的是重定向,就是網(wǎng)址不變,解決辦法就是在result中加type=”redirect”,就可以了
轉(zhuǎn)發(fā)和重定向的區(qū)別:
重定向是不共享request的東西,重定向后的頁面中無法接收request里的東西,另外dispatcher結(jié)果類型的default屬性為TRUE,故<result- type/>缺省為dispatcher 所以如果沒有設置type屬性的話,那么默認的是請求轉(zhuǎn)發(fā),就是說你要是什么都不寫的話,默認就是這樣的
1
<result name="list" type="dispatcher">/admin/jsp/userAction/list.jsp</result>
1
重定向的兩個屬性:
redirect是在處理完當前Action之后,重定向到另外一個實際的物理資源,以.jsp結(jié)尾這樣的
redirectAction也是重定向,但它重定向到的是另外一個Action,就是以action結(jié)尾這樣的
只要是重定向,那么之前凡是保存在request里面的東西就全都消失了
因為重定向?qū)嶋H是發(fā)送第二個請求,故請求中的東西也就不會出現(xiàn)在第二個請求里面了
也就是說重定向是不共享request的東西,重定向后的頁面中無法接收request里的東西,
藍藍設計( m.820esy.cn )是一家專注而深入的界面設計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網(wǎng)站建設 、平面設計服務。