DispatchAction

来源:互联网 发布:自我认知 知乎 编辑:程序博客网 时间:2024/05/16 14:59

DispatchAction的转向,可以将所有的Action合为一个Action

  1. package com.bjsxt.drp.web.usermgr.actions;
  2. import java.util.Date;
  3. import java.util.List;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.apache.commons.beanutils.BeanUtils;
  7. import org.apache.struts.action.ActionForm;
  8. import org.apache.struts.action.ActionForward;
  9. import org.apache.struts.action.ActionMapping;
  10. import org.apache.struts.actions.DispatchAction;
  11. import com.bjsxt.drp.business.usermgr.manager.UserManager;
  12. import com.bjsxt.drp.business.usermgr.model.User;
  13. import com.bjsxt.drp.web.usermgr.forms.UserActionForm;
  14. /**
  15.  * 处理用户管理的Action
  16.  * @author Administrator
  17.  *
  18.  */
  19. public class UserAction extends DispatchAction {
  20.     @Override
  21.     protected ActionForward unspecified(ActionMapping mapping, ActionForm form,
  22.             HttpServletRequest request, HttpServletResponse response)
  23.             throws Exception {
  24.             System.out.println("--------UserAction.unspecified()----------");
  25.         return null;
  26.     }//这个方法是在没有指定具体的方法名的情况下会自动调用
  27.     /**
  28.      * 用户添加
  29.      * @param mapping
  30.      * @param form
  31.      * @param request
  32.      * @param response
  33.      * @return
  34.      * @throws Exception
  35.      */
  36.     public ActionForward add(ActionMapping mapping, ActionForm form,
  37.             HttpServletRequest request, HttpServletResponse response)
  38.             throws Exception {
  39.         //获取从页面表单中提交过来的值
  40.         UserActionForm uaf = (UserActionForm)form;
  41.         
  42.         //创建User实体对象,并将ActionForm中的内容设置到User对象中
  43.         System.out.println("姓名:"+uaf.getUserName());
  44.         
  45.         User user = new User();
  46.         user.setUserId(uaf.getUserId());
  47.         user.setUserName(uaf.getUserName());
  48.         user.setPassword(uaf.getPassword());
  49.         user.setEmail(uaf.getEmail());
  50.         user.setContactTel(uaf.getContactTel());
  51.         user.setCreateDate(new Date());
  52. //      User user = new User();
  53. //      BeanUtils.copyProperties(user, uaf);
  54. //      user.setCreateDate(new Date());
  55.         
  56.         //调用业务逻辑操作
  57.         UserManager.getInstance().addUser(user);
  58.         return mapping.findForward("add_success");
  59.     }
  60.     /**
  61.      * 用户删除
  62.      * @param mapping
  63.      * @param form
  64.      * @param request
  65.      * @param response
  66.      * @return
  67.      * @throws Exception
  68.      */
  69.     public ActionForward del(ActionMapping mapping, ActionForm form,
  70.             HttpServletRequest request, HttpServletResponse response)
  71.             throws Exception {
  72.         UserActionForm uaf = (UserActionForm)form;
  73.         //取得需要删除的userId的集合
  74.         String[] userIdList = uaf.getSelectFlag();
  75.         //调用业务逻辑操作
  76.         UserManager.getInstance().deleteUsers(userIdList);
  77.         return mapping.findForward("del_success");
  78.     }
  79.     public ActionForward find(ActionMapping mapping, ActionForm form,
  80.             HttpServletRequest request, HttpServletResponse response)
  81.             throws Exception {
  82.         //获取从页面表单中提交过来的值
  83.         UserActionForm uaf = (UserActionForm)form;
  84.         
  85.         String userId = uaf.getUserId();
  86.         
  87.         //调用业务逻辑操作
  88.         User user = UserManager.getInstance().findUserById(userId);
  89.         
  90.         //将user对象从Action传递到JSP页面
  91.         request.setAttribute("user", user);
  92.         
  93.         return mapping.findForward("find_success");
  94.     }
  95.     public ActionForward list(ActionMapping mapping, ActionForm form,
  96.             HttpServletRequest request, HttpServletResponse response)
  97.             throws Exception {
  98.         //调用业务逻辑操作
  99.         List userList = UserManager.getInstance().findAllUserList();
  100.         request.setAttribute("userlist", userList);
  101.         
  102.         return mapping.findForward("list_success");
  103.     }
  104.     public ActionForward modify(ActionMapping mapping, ActionForm form,
  105.             HttpServletRequest request, HttpServletResponse response)
  106.             throws Exception {
  107.         //获取从页面表单中提交过来的值
  108.         UserActionForm uaf = (UserActionForm)form;
  109.         
  110. //      //创建User实体对象,并将ActionForm中的内容设置到User对象中
  111. //      User user = new User();
  112. //      user.setUserId(uaf.getUserId());
  113. //      user.setUserName(uaf.getUserName());
  114. //      user.setPassword(uaf.getPassword());
  115. //      user.setEmail(uaf.getEmail());
  116. //      user.setContactTel(uaf.getContactTel());
  117. //      user.setCreateDate(new Date());
  118.         
  119.         User user = new User();
  120.         BeanUtils.copyProperties(user, uaf);
  121.         user.setCreateDate(new Date());
  122.         
  123.         //调用业务逻辑操作
  124.         UserManager.getInstance().modifyUser(user);
  125.         
  126.         return mapping.findForward("modify_success");
  127.     }
  128. }

Struts-config.xml文件的具体配置

  1. <struts-config>
  2.     
  3.     <form-beans>
  4.         <form-bean name="userForm" type="com.bjsxt.drp.web.usermgr.forms.UserActionForm"></form-bean>
  5.     </form-beans>
  6.     
  7.     <action-mappings>
  8.         <action path="/user/usermiant"
  9.                 type="com.bjsxt.drp.web.usermgr.actions.UserAction"
  10.                 name="userForm"
  11.                 scope="request"
  12.                 parameter="command"
  13.         >
  14.             <forward name="add_success" path="/user/usermiant.do?command=list" redirect="true" />
  15.             <forward name="del_success" path="/user/usermiant.do?command=list" redirect="true" />
  16.             <forward name="find_success" path="/user/user_modify.jsp" />
  17.             <forward name="list_success" path="/user/user_list.jsp" />
  18.             <forward name="modify_success" path="/user/usermiant.do?command=list" redirect="true" />
  19.         </action>
  20.             </action-mappings>
  21.     
  22.     <controller processorClass="com.bjsxt.drp.CharacterEncode.MyRequestProcessor" />
  23.     
  24.     
  25.     
  26.     <message-resources parameter="MessageResources" />
  27.     
  28. </struts-config>

页面调用时个具体

  1. <%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="gb2312"%>
  2. <html>
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
  5.         <title>添加用户</title>
  6.         <link rel="stylesheet" href="../style/drp.css">
  7.         <script src="../script/client_validate.js"></script>
  8.         <script type="text/javascript">
  9.     function addUser() {
  10.         if (document.getElementById("userId").value.length <4) {
  11.             alert("用户代码不能小于4个字符!");
  12.             document.getElementById("userId").focus();
  13.             return;
  14.         }
  15.         var firstChar = document.getElementById("userId").value.charAt(0);
  16.     
  17.         if (!(firstChar >= 'a' && firstChar <='z')) {
  18.             alert("用户代码首字符必须为字母");
  19.             document.getElementById("userId").focus();
  20.             return;
  21.         }
  22.         if(document.getElementById("userName").value == "") {
  23.             alert("用户名称不能为空!");
  24.             document.getElementById("userName").focus();
  25.             return;
  26.         }
  27.         if (document.getElementById("password").value.length <6) {
  28.             alert("输入的密码不能小于6位字符");
  29.             document.getElementById("password").focus();
  30.             return;
  31.         }
  32.         with (document.getElementById("userForm")) {
  33.             method = "post";
  34.             action = "usermiant.do?command=add";
  35.             submit();
  36.         }
  37.     }
  38.     function goBack() {
  39.         window.self.location ="usermiant.do?command=list"
  40.     }
  41.     
  42.     function init() {
  43.         document.userForm.userId.focus();
  44.     }
  45. </script>
  46.     </head>
  47. <%
  48.     request.setCharacterEncoding("gb2312");
  49.     response.setCharacterEncoding("gb2312");
  50. %>
  51.     <body class="body1">
  52.         <form name="userForm" target="_self" id="userForm">
  53.             <div align="center">
  54.                 <table width="95%" border="0" cellspacing="2" cellpadding="2">
  55.                     <tr>
  56.                         <td>
  57.                              
  58.                         </td>
  59.                     </tr>
  60.                 </table>
  61.                 <table width="95%" border="0" cellspacing="0" cellpadding="0"
  62.                     height="25">
  63.                     <tr>
  64.                         <td width="522" class="p1" height="25" nowrap>
  65.                             <img src="../images/mark_arrow_03.gif" width="14" height="14">
  66.                              
  67.                             <b>系统管理>>用户维护>>添加</b>
  68.                         </td>
  69.                     </tr>
  70.                 </table>
  71.                 <hr width="97%" align="center" size=0>
  72.                 <table width="95%" border="0" cellpadding="0" cellspacing="0">
  73.                     <tr>
  74.                         <td width="22%" height="29">
  75.                             <div align="right">
  76.                                 <font color="#FF0000">*</font>用户代码: 
  77.                             </div>
  78.                         </td>
  79.                         <td width="78%">
  80.                             <input name="userId" type="text" class="text1" id="userId"
  81.                                 size="10" maxlength="10">
  82.                         </td>
  83.                     </tr>
  84.                     <tr>
  85.                         <td height="26">
  86.                             <div align="right">
  87.                                 <font color="#FF0000">*</font>用户名称: 
  88.                             </div>
  89.                         </td>
  90.                         <td>
  91.                             <input name="userName" type="text" class="text1" id="userName"
  92.                                 size="20" maxlength="20">
  93.                         </td>
  94.                     </tr>
  95.                     <tr>
  96.                         <td height="26">
  97.                             <div align="right">
  98.                                 <font color="#FF0000">*</font>密码: 
  99.                             </div>
  100.                         </td>
  101.                         <td>
  102.                             <label>
  103.                                 <input name="password" type="password" class="text1"
  104.                                     id="password" size="20" maxlength="20">
  105.                             </label>
  106.                         </td>
  107.                     </tr>
  108.                     <tr>
  109.                         <td height="26">
  110.                             <div align="right">
  111.                                 联系电话: 
  112.                             </div>
  113.                         </td>
  114.                         <td>
  115.                             <input name="contactTel" type="text" class="text1"
  116.                                 id="contactTel" size="20" maxlength="20">
  117.                         </td>
  118.                     </tr>
  119.                     <tr>
  120.                         <td height="26">
  121.                             <div align="right">
  122.                                 email: 
  123.                             </div>
  124.                         </td>
  125.                         <td>
  126.                             <input name="email" type="text" class="text1" id="email"
  127.                                 size="20" maxlength="20">
  128.                         </td>
  129.                     </tr>
  130.                 </table>
  131.                 <hr width="97%" align="center" size=0>
  132.                 <div align="center">
  133.                     <input name="btnAdd" class="button1" type="button" id="btnAdd"
  134.                         value="添加" onClick="addUser()">
  135.                         
  136.                     <input name="btnBack" class="button1" type="button" id="btnBack"
  137.                         value="返回" onclick="goBack()" />
  138.                 </div>
  139.             </div>
  140.         </form>
  141.     </body>
  142. </html>
原创粉丝点击