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;
	}

}

  

时间: 2024-12-20 16:16:40

Struts2数据封装机制的相关文章

Struts2流程机制

SSH框架的学习已经有一段时间了,从一开始的略略抵触,到现在的乐意主动去研究,经历了很有趣的过程.从开始的先去接受,到逐渐的.一点点的开始理解机制,过程很享受. 对Struts2的机制的研究已略略有了小的成果,分享给大家. 我们只负责Action和jsp页面的编写,数据的准备及其他工作都是由Struts2内部给我们做好了处理. 页面一个请求发送过来,依次经过一系列拦截器(处理公共部分,如:往数据中心(值栈)填充数据,所处理工作与业务无关),Action,Result. 1,经过一系列拦截器 介绍

改善struts2验证机制的核心设计思想

Struts2的验证机制都是在VO进行赋值转换之后进行验证的,在实际开发中不能使用,那么我们可以在实际项目的应用中在VO进行赋值转换之前自己设计赋值拦截器改善struts2验证机制的核心设计思想:1.将所有用户提交的参数名称接收2.获取用户请求路径,得到请求执行的action名称3.拼接相关action要执行的规则key4.利用反射得到struts2Action提供的读取资源文件的方法5.利用反射得到struts2Action提供的添加错误信息的方法6.利用反射得到struts2Action提供

Struts2运行机制

前言: 首先感谢中国最专业的java培训班<北京尚学堂>的无私奉献精神,免费提供这么多学习资料. 以及我的偶像马士兵老师,感觉您特帅,技术特别牛,今生若能相见,甚好.谢谢. struts2的运行机制: 探讨任何的运行机制,一定是这里开始, (http://localhost:8080/Struts2_Instroduction/hello.action)(.action可省略) 客户端在浏览器输入一个URL地址,这个请求通过http协议发送给tomcat,tomcat接收到请求后,查看请求的是

struts2 - 异常处理机制

struts2 采用声明式的方法管理异常处理,因此,我们无需在 execute方法中编写 大量的 try...catch语句来捕获异常:只需要在 struts.xml文件中配置异常的映射机制,struts2 便能够处理并转入响应的视图资源. eg: 页面输出 异常信息: 例如internal_Error.jsp页面 <body>   <s:property value="exception.message"/> </body>

struts2异常处理机制

一.处理一般异常(javaBean异常) struts2进行异常处理首先需要添加exception拦截器,而默认拦截器栈已经加入了这个拦截器,所以不用特意的声明.在Struts 2框架中,采用声明式异常处理方式.在这种方式下,只需要在struts.xml文件中进行配置,Struts 2便能够处理异常,并跳转到相应的视图,而在Action中无须编写任何异常处理代码. 如果Action在处理请求的过程中出现异常,一个名称为exception的拦截器将拦截该异常,并进行处理.所以在struts.xml

JAVA框架Struts2 数据封装

一.strust2封装数据包含二部分: 数据在到Action类的时候,会经过拦截器,拦截器会有很多功能:比如数据封装.类型转换等. 我可以查看下strust-default.xml文件,看那些拦截器默认执行. 中的默认栈中的拦截器执行如下: 其中拦截器params和modelDriven分别为:属性封装和模块封装. 1.属性封装 常用的:需要注意的是实现set方法.拦截器通过set方法给我们封装数据. 1 package jd.com.dealdata; 2 3 public class abd

小学生之浅谈Struts2与struts1的运行机制

Struts1工作原理图: 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.(面向对象思想) 2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器. 3.form填充:struts的总控制器ActionServlet在用户提交请求时将数

Struts2架构分析和运行机制

实例分析 1.在浏览器中输入url地址后,会通过http协议发送给tomcat,tomacat收到请求后查看访问的是哪个 webapplication(如下图的Struts2_0100_Introduction),tomcat把Struts2_0100_Introduction交给对应的 webapplication程序去处理. 2.之后会参考Struts2_0100_Introduction下的对应的web.xml文件,将请求交给Struts2Filter去处理 ("/*"为这个项目

struts2知识总结

2.Struts2和Servlet的对比 3.Struts2程序运行流程 4.Struts2的配置文件包括自己内部的.properties.default.xml以及自定义的配置文件struts.xml和web.xml先加载内部自己的配置文件,后加载用户自定义的配置文件,后加载的会覆盖先加载的文件. 在web.xml中会配置struts2的前端控制器(StrutsPrepareAndExecuteFilter)<?xml version="1.0" encoding="