1. 程式人生 > >struts2返回結果的跳轉方式

struts2返回結果的跳轉方式

1.     <result>返回結果:跳轉方式

dispatch:請求轉發,預設值相應的跳轉到jsp頁面。並非Action

redirect:重定向,不傳遞引數的.跳轉的應該是一個jsp頁面。並非Action

redirectAction:重定向到一個action,不會傳遞相應的引數到下一個action

chain:鏈,請求轉發到一個action,會傳遞相應的引數到下一個action

stream:物件流物件,主要用於上傳下載檔案

action:

public class LoginAction extends ActionSupport{

//     通過物件方式取得到前臺頁面的資料

       private User user;

       public User getUser() {

              return user;

       }

       public void setUser(User user) {

              this.user = user;

       }

       /**

        * 登入方法

        */

       public String login(){

              System.out.println(user+"login");

              return

SUCCESS;

       }

       /**

        *

        * @Description處理登入方法

        * @return

        * @author mengqx

        * @date   2017829

        */

       public String doLogin(){

              System.out.println(user+"doLogin");

              return SUCCESS;

       }

}

Struts.xml

<struts>

       <package name="default" namespace="/" extends="struts-default">

              <action name="login" class="com.bjsxt.action.LoginAction" method="login">

                     <!-- result

                     name屬性表示action中的返回值

                     type屬性表示跳轉方式 doLogin表示是一個Action。此時的Action:並不是指的某一個特定方法,

而是同<action> 標籤創建出來的namedoLogin<action>

                     -->

                     <result type="chain">doLogin</result>

              </action>

              <action name="doLogin" class="com.bjsxt.action.LoginAction" method="doLogin">

                     <result type="redirect">/success.jsp</result>

              </action>

       </package>

</struts>

Login.jsp

<center>

           <h1>登入</h1>

           <form action="login.action" method="post">

                 userName: <input type="text" name="user.name"/><br>

                 password: <input type="password" name="user.pwd"><br>

                 <!-- springMVC struts2 一個道理!都是通過物件.呼叫 -->

                 address: <input type="text" name="user.adr.name"><br>

               <input type="submit" value="login"/>

           </form>

      </center>

當一個Action中有多個return的時候。則需要在struts.xml中配置多個<result>標籤。 Name屬性對應的是前臺return返回值。

public String doLogin(){

              if ("admin".equals(user.getName())) {

                     return SUCCESS;

              }else{

                     return LOGIN;

              }

       }

<action name="doLogin" class="com.bjsxt.action.LoginAction" method="doLogin">

                     <!--  因為方法中有兩個return 所以對應的分支應該也有兩個-->

                     <result name="success" type="redirect">/success.jsp</result>

                     <result name="login">/login.jsp</result>

              </action>