3.struts2接收页面传参的三种方式
Struts2通过拦截器机制封装了三种接收页面参数的方式:
1.属性驱动
2.模型驱动(有两种)
Domain
ModelDriven
1.属性驱动:这种方式比较简单,只要你直接在页面定义变量并且符合以下两个规则,就会自动接收值。
规则1:你变量的名字和页面的name属性一致
规则2:生成对应的get set方式
Action写法:
public class ParamAction {
    private String username;
    private String password;
    public String para1(){
        System.out.println("用户名:"+username+"密码"+password);
        return "success";
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}
页面写法:

2.Domain:在Action中创建实体类的对象,并且符合以下两个规则就可以
规则1:页面的那么属性写法:对象名.属性名
规则2:生成get set方法
Action写法:
public class ParamAction2 extends ActionSupport {
    private User user;
    public String para2(){
        System.out.println("用户名:"+user.getUsername()+"密码"+user.getPassword());
        return "success";
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
}
实体类:get set省略了,自己生成
private String username;
private String password;
页面写法:

3.实现ModelDriven接口,这个一个泛型接口,泛型中的内容就是你要接受的实体类
规则1:实现ModelDriven这个接口,并实现其getModel方法
规则2:提供一个空的对象供其初始化
规则3:页面的名字和实体类的属性名一致
Action写法:
/**
* 1.类要实现ModelDriven这个接口
* @author Administrator
*
*/
public class ParamAction3 implements ModelDriven<User> {
//2.提供一个空的对象供其初始化,一定要new出来
private User user =new User();
public String para3(){
System.out.println(user.getUsername()+user.getPassword());
return "success";
}
//3.把user返回
public User getModel() {
return user;
}
}
页面写法:

3.struts2接收页面传参的三种方式的更多相关文章
- react-绑定this并传参的三种方式
		绑定this并传参的三种方式 在事件中绑定this并传参: <input type="button" value="在事件中绑定this并传参" onCl ... 
- vue路由传参的三种方式以及解决vue路由传参页面刷新参数丢失问题
		最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$r ... 
- vue路由传参的三种方式区别(params,query)
		最近在做一个项目涉及到列表到详情页的参数的传递,网上搜索一下路由传参,结合自己的写法找到一种适合自己的,不过也对三种写法都有了了解,在此记录一下 <ul class="table_in ... 
- React中使用 react-router-dom 路由传参的三种方式详解【含V5.x、V6.x】!!!
		路由传值的三种方式(v5.x) params参数 //路由链接(携带参数): <Link to='/demo/test/tom/18'}>详情</Link> //或 <L ... 
- vue里面路由传参的三种方式
		1.方式一 通过query的方式也就是?的方式路径会显示传递的参数 HTML的方式<router-link :to="{name:xxx,query:{page:1,code:8899 ... 
- 【service调用dao层传参的三种方式】
		第一种方案:默认数组角标: service Public User selectUser(String name,String area); mapper: <select id="s ... 
- Vue-router路由传参的三种方式
		本文简单介绍下三种路由传参: (1)在路由中配置 { path : ‘/home/:id’, name : ‘Dome’, component } 然后写调用的时候 this.$router.push ... 
- React路由传参的三种方式
		方式 一: 通过params 1.路由表中 <Route path=' /sort/:id ' component= ... 
- vue路由传参的三种方式
		方式一 通过query方式传参 这种情况下 query传递的参数会显示在url后面 this.$router.push({ path: '/detail', query: { id: id } }) ... 
随机推荐
- composer.json:项目安装!!!!!!!!!!
			基本用法 基本用法 安装 composer.json:项目安装 关于 require Key 包名称 包版本 下一个重要版本(波浪号运算符) 稳定性 安装依赖包 composer.lock - 锁文件 ... 
- ASP.NET管道
			以IIS 6.0为例,在工作进程w3wp.exe中,利用Aspnet_ispai.dll加载.NET运行时(如果.NET运行时尚未加载).IIS 6引入了应用程序池的概念,一个工作进程对应着一个应用程 ... 
- HBase读延迟的12种优化套路
			任何系统都会有各种各样的问题,有些是系统本身设计问题,有些却是使用姿势问题.HBase也一样,在真实生产线上大家或多或少都会遇到很多问题,有些是HBase还需要完善的,有些是我们确实对它了解太少.总结 ... 
- "\r\n","\r","\n"
			参考: http://blog.csdn.net/xiaofei2010/article/details/8458605 '\r' : 回车符 '\n' : 换行符 以下是c++语言的测试代码, 跟平 ... 
- 同时闪烁多个要素代码(ArcEngine)
			/// <summary> /// 根据查询条件构造/// </summary> /// <param name="where">查询条件< ... 
- Django 静态文件配置(static files)
			Django version: 1.9 Python versrion: 3.5.2 这几天Django配置静态文件(本例是要加载index.css), 总是不对,最后终于试对了,这里记录下,方便以后 ... 
- html基础  样式
			html样式:本文演示如何在head中添加样式信息使文本格式化 <html> <head> <style type="Text/css"> h1 ... 
- c#摄像头编程实例  (转)
			c#摄像头编程实例 摄像头编程 安装摄像头后,一般可以找到一个avicap32.dll文件 这是一个关于设想头的类 using system;using System.Runtime.Intero ... 
- slickedit的alias配置
			使用slickedit很喜欢它的多语言支持,可以快速查看变量的定义和结构.我一般写verilog较多,使用emcas很方便,但是感觉查看代码结构不太方便(也可能是我不会设置).所以希望能够在slick ... 
- 记录一下emacs在window下的配置过程
			今天重装WIN7 64位新系统,装完发现emacs无法加载以前的插件了.网上搜一下才记起来,emacs默认读取的配置文件在c盘,在这个原始配置文件中还需要添加一些路径转换的语句才能转到用户自己的配置文 ... 
