• Struts2数据封装机制


    Struts2 属性驱动和模型驱动 帮助我们完成了 数据自动获取 数据自动封装

    1、使用 属性驱动 来完成 数据自动获取和数据自动封装:

    index.jsp:表单的填写

    <body>
        <form action="<%=path %>/loginAction" method="post">
          姓名:<input name="name" type="text">
          密码:<input name="pwd" type="password">
          <input value="提交" type="submit">
        </form>
    </body>
    

    LoginAction的实现:(属性名一定要和jsp表单的name相同。重写execute返回“success”)

    package com.qyy.action;
    
    public class LoginAction{
    	private String name;
    	private String pwd;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getPwd() {
    		return pwd;
    	}
    	public void setPwd(String pwd) {
    		this.pwd = pwd;
    	}
    	public String execute() throws Exception {
    		System.out.println(name);
    		System.out.println(pwd);
    		return "success";
    	}
    }
    

    struts.xml的填写:

    <struts>
      <package name="userlogin" extends="struts-default">
        <!-- 第一个action是属性驱动 完成数据的自动获取和自动封装 -->
        <action name="loginAction" class="com.qyy.action.LoginAction">
          <result name="success">/index.jsp</result>
        </action>
        
        <!-- 第二个action是模型驱动 完成数据的自动获取和自动封装 -->
        <action name="muserlogin" class="com.qyy.action.MloginAction">
          <result name="success">/index.jsp</result>
          <!-- 以下两个是拦截器 -->
          <interceptor-ref name="modelDriven"></interceptor-ref>
          <interceptor-ref name="defaultStack"></interceptor-ref>
        </action>
      </package>
    </struts>    
    

    2、使用 模型驱动 来完成 数据自动获取和数据自动封装:

    index.jsp:表单的填写

    <body>
      <form action="<%=path %>/muserlogin" method="post">
          姓名:<input name="name" type="text">
          密码:<input name="pwd" type="password">
          <input value="提交" type="submit">
        </form>
      </body>
    

    实例对象的bean:

    package com.qyy.impl;
    
    public class Users {
    	private String name;
    	private String pwd;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getPwd() {
    		return pwd;
    	}
    	public void setPwd(String pwd) {
    		this.pwd = pwd;
    	}
    	
    }
    

    MloginAction的实现:(属性名一定要和jsp表单的name相同。实现接口ModelDriven<T>,其中T是bean的类名。一定要先new一个bean的对象,然后实现抽象方法getModel(),返回实例对象return us。 这样才能将jsp表单的内容初始化到对象中,然后才可以重写execute并返回“success”。)

    package com.qyy.action;
    
    import com.opensymphony.xwork2.ModelDriven;
    import com.qyy.impl.Users;
    
    public class MloginAction implements ModelDriven<Users>{
    	private Users us = new Users();
    		
    	public String execute() throws Exception {
    		System.out.println(us.getName());
    		System.out.println(us.getPwd());
    		return "success";
    	}
    
    	@Override
    	public Users getModel() {
    		// TODO Auto-generated method stub
    		return us;
    	}
    	
    }
    

    3、标签实现模型驱动

    SloginAction的实现:(也是要先声明一个Uesrs的对象,但是不需要new来实例化。也不需要实现接口。但是需要getter和setter方法。)

    package com.qyy.action;
    
    import com.qyy.impl.Users;
    
    
    public class SloginAction{
    
        private Users us;
        
        public Users getUs() {
            return us;
        }
    
        public void setUs(Users us) {
            this.us = us;
        }
    
        public String execute() throws Exception {
            System.out.println("标签实现。。。");
            System.out.println(us.getName());
            System.out.println(us.getPwd());
            return "success";
        }
    }

    index.jsp表单填写:

    先html之上写好标签:

    <%@ taglib prefix="s" uri="/struts-tags" %>

    然后填表单:注(用struts标签的时候,action的“”里面不能写<%=path%> )

                     表单中的us就是指SloginAction类中的us。us点后面的name和pwd就是Users的属性名。一定要一样

    <body>
      <s:form namespace="" action="suserlogin" method="post">
          <s:textfield name="us.name" label="用户名"></s:textfield>
          <s:password name="us.pwd" label="密码"></s:password>
          <s:submit value="提交"></s:submit>
      </s:form>
    </body>
    

    struts.xml的配置:

    <!-- 第三个action是标签实现模型驱动-->
        <action name="suserlogin" class="com.qyy.action.SloginAction">
          <result name="success">/index.jsp</result>
        </action>
    

    在struts中进行如下配置后,jsp的格式就可以用自己的布局设置

  • 相关阅读:
    细说 ASP.NET Cache 及其高级用法【转】
    类变量和实例变量的区别是什么?
    【转】细说Cookie
    【转】细说 Form (表单)
    PHP API中,MYSQL与MYSQLI的持久连接区别
    Extending_and_embedding_php翻译
    linux常见面试题及答案
    手机辐射查询
    php5.3 PHP5.4 PHP5.5 新特性/使用PHP5.5要注意的
    sqoop安装遇到的问题
  • 原文地址:https://www.cnblogs.com/qyy-goodluck/p/4598559.html
Copyright © 2020-2023  润新知