struts1.3学习


  • 一、基本配置

    • 参考博客
    • 项目结构
      项目结构
    • web.xml
      
      
          action
          org.apache.struts.action.ActionServlet
          
              config
              
              
                  /WEB-INF/config/struts-config.xml,
                  /WEB-INF/config/struts-config-user.xml
              
          
          
              debug
              3
          
          
              detail
              3
          
          
          0
      
      
          action
          *.do
      
      
    • struts-config.xml
      
      
          
      
      
      
      
          
          
              
              
              
          
      
      
      
    • UserForm.java
      //ActionForm本质上是一种JavaBean,是专门用来传递表单数据的DTD(Data Transfer Object,数据传递对象)。
      //它包括用于表单数据验证的validate()方法和用于数据复位的reset()方法。
      
      public class UserForm extends ActionForm {//继承ActionFor
          //属性名一定要和表单中的name对应
          private String u_id;
          private String u_name;
          private String u_pwd;
          private String u_realname;
          private String u_logintime;
          //setter/getter省略
      }
      
    • UserAction.java
      public class UserAction extends DispatchAction {//继承DispatchAction
          //前台url:<%=basePath%>User.do?method=addUser可以执行addUser方法
          public ActionForward addUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
              //这个form是根据给UserAction配置的Action(struts-config.xml中)的name对应的formbean的name,这样才会将数据填充到这个formbean中
              UserForm userform = (UserForm) form;
              if("aaa".equals(userform.getU_name())){
                  //这里的mapping对应action配置的name
                  return mapping.findForward("addSuccess");
              }else {
                  return mapping.findForward("addFaild");
              }
          }
      }
      
  • 二、使用验证

    • 参考博客
    • struts1.X的验证分为1.重写validate (继承ActionForm) 2.配置xml(继承ValidatorForm)两种方式,老夫以为第一种会更实用些,所以下文就是以重写的方式使用struts的验证

    1. 配置 struts-config.xml
      • 配置action 的validate="true" input="xx.jsp"
      
          
              
              
              
          
      
    2. 重写userform的validate方法
      @Override
      public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
          ActionErrors errors = new ActionErrors();
          if(u_name==null||u_name.length()<=3){
              errors.add("u_name",new ActionMessage("error.login.u_name",u_name));
          }
          if(u_pwd==null||u_pwd.length()<=3){
              errors.add("u_pwd",new ActionMessage("error.login.u_pwd",u_pwd));
          }
          return errors;
      }
      
    3. 配置资源文件properties
      • properties编码设置自动编译(setting->file encoding->transparent)
      #UserForm验证
      error.login.u_name=用户名不能为空或长度不能小于4
      error.login.u_pwd=密码不能为空或长度不能小于4
      
    4. jsp中使用
      <%--引入标签--%>
      <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
      <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
      <%--使用html:form标签--%>
      
      	
          <%--使用html:text、html:errors标签  其中property对应表单的name值--%>
      	username:  
      password:
  • 三、标签的使用

    • Struts1.3——Struts入门
    • Struts 1 之标签库