请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术发帖,必有回复! 做最受欢迎的Java论坛

疯狂Java联盟

 找回密码
 加入联盟
查看: 162|回复: 0

Struts2连载(12)-- Result类型之china

[复制链接]
发表于 2018-2-13 22:09:51 | 显示全部楼层 |阅读模式
更多Struts2的知识请参考李刚老师著作《Struts 2.x权威指南(第3版)》

京东购买地址:https://item.jd.com/11105100.html


3.chain
  --Action处理完用户请求之后,转发到下一个Action继续处理。形成“链”式处理。   
action带着原来的状态请求转发到新的action,两个action共享一个ActionContext,actionName指定转向的新的Action的名字,
method指定转向哪个方法,不写表示执行对应action配置的method或execute方法

示例:

JSP页面:
login3.jsp:
  1. <body>
  2. <form action="login3.action" method="post">
  3.     <table>
  4.         <tr>
  5.             <td>登录名:</td>
  6.             <td><input type="text" name="loginname"></td>
  7.         </tr>
  8.         <tr>
  9.             <td>密码:</td>
  10.             <td><input type="text" name="password"></td>
  11.         </tr>
  12.         <tr>
  13.             <td><input type="submit" value="提交"></td>
  14.         </tr>
  15.     </table>
  16. </form>
  17. </body>
复制代码


success1.jsp:
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2.     pageEncoding="UTF-8"%>
  3. <%@ taglib uri="/struts-tags" prefix="s" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>Insert title here</title>
  9. </head>
  10. <body>
  11. loginname:${requestScope.loginname }<br><br>
  12. password:${requestScope.password }<br><br>
  13. <s:debug/>
  14. </body>
  15. </html>
复制代码




Action:
  1. package org.fkjava.action;

  2. import com.opensymphony.xwork2.Action;

  3. public class UserAction implements Action {
  4.    
  5.     private String loginname;
  6.     private String password;
  7.    

  8.     public String getLoginname() {
  9.         return loginname;
  10.     }

  11.     public void setLoginname(String loginname) {
  12.         this.loginname = loginname;
  13.     }

  14.     public String getPassword() {
  15.         return password;
  16.     }

  17.     public void setPassword(String password) {
  18.         this.password = password;
  19.     }

  20.     @Override
  21.     public String execute() throws Exception {
  22.         // TODO Auto-generated method stub
  23.         return null;
  24.     }
  25.    
  26.    
  27.     /**
  28.      * 测试result类型的默认chain,实际是forward到下一个Action
  29.      * */
  30.     public String login3() throws Exception {
  31.         System.out.println("UserAction login3 -->>");
  32.         System.out.println("loginname:" + loginname);
  33.         System.out.println("password:" + password);
  34.         return SUCCESS;
  35.     }
  36.    

  37. }
复制代码



  1. package org.fkjava.action;

  2. import javax.servlet.http.HttpServletRequest;

  3. import org.apache.struts2.ServletActionContext;

  4. import com.opensymphony.xwork2.Action;

  5. public class BookAction implements Action {

  6.     @Override
  7.     public String execute() throws Exception {
  8.         System.out.println("BookAction execute  -->>");
  9.         // 获取上一个Action的属性(request中)
  10.         HttpServletRequest request = ServletActionContext.getRequest();
  11.         System.out.println("loginname:" + request.getAttribute("loginname"));
  12.         System.out.println("password:" + request.getAttribute("password"));
  13.         return SUCCESS;
  14.     }

  15. }
复制代码




struts.xml:
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4.     "http://struts.apache.org/dtds/struts-2.3.dtd">

  5. <struts>


  6.     <package name="default" namespace="/" extends="struts-default">
  7.    
  8.         
  9.         <action name="login3" class="org.fkjava.action.UserAction"
  10.         method="login3">
  11.             <!-- name默认success,type设置成chain,则会是forward跳转到下一个Action -->
  12.             <result type="chain">book</result>
  13.         </action>
  14.         
  15.         
  16.         <action name="book" class="org.fkjava.action.BookAction">
  17.             <result>/success1.jsp</result>
  18.         </action>
  19.         
  20.     </package>


  21. </struts>
复制代码



测试访问login3.jsp,点击"提交"按钮请求发生到login3.action,之后转发到book.action,最后跳转到success1.jsp。


您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11063141号 )

GMT+8, 2018-5-25 09:28 , Processed in 0.278561 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表