Struts2中轉(zhuǎn)發(fā)和重定向的區(qū)別以及實現(xiàn)方法

2019-9-10    seo達人

Struts2中轉(zhuǎn)發(fā)和重定向的區(qū)別以及實現(xiàn)方法

最近遇到一個問題,就是在設(shè)置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 所以如果沒有設(shè)置type屬性的話,那么默認的是請求轉(zhuǎn)發(fā),就是說你要是什么都不寫的話,默認就是這樣的

1

<result name="list" type="dispatcher">/admin/jsp/userAction/list.jsp</result>

1

重定向的兩個屬性: 

redirect是在處理完當(dāng)前Action之后,重定向到另外一個實際的物理資源,以.jsp結(jié)尾這樣的 

redirectAction也是重定向,但它重定向到的是另外一個Action,就是以action結(jié)尾這樣的 

只要是重定向,那么之前凡是保存在request里面的東西就全都消失了 

因為重定向?qū)嶋H是發(fā)送第二個請求,故請求中的東西也就不會出現(xiàn)在第二個請求里面了 

也就是說重定向是不共享request的東西,重定向后的頁面中無法接收request里的東西,

藍藍設(shè)計sillybuy.com )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計  ipad界面設(shè)計 、 包裝設(shè)計 、 圖標定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 、平面設(shè)計服務(wù)

分享本文至:

日歷

鏈接

個人資料

藍藍設(shè)計的小編 http://sillybuy.com

存檔