博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2参数知识点
阅读量:5959 次
发布时间:2019-06-19

本文共 2594 字,大约阅读时间需要 8 分钟。

hot3.png

(三)Struts2接收参数的方法

Struts2接收参数的方法有3种分别是:

1.用Action的属性接收参数

2.用DomainModel接收参数

3.用ModelDriven接收参数

一:用Action的属性接收参数的例子如下:

UI页面代码如下:

使用action属性接收参数
添加用户

Action代码如下:

package org.credo.struts2.user.action;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {		private String name;	private int age;		public String add() {		System.out.println("name=" + name);		System.out.println("age=" + age);		return SUCCESS;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public int getAge() {		return age;	}	public void setAge(int age) {		this.age = age;	}		}

可以看到,在action种定义了name和age,并且get和set.

那么就可以直接进行传参,?name=credo&age=25

在action种将获取到这些值.

二.用DomainModel接收参数例子如下:

DomainModel是指域模型,就是model.最常用的一种.

UI代码:

 使用Domain Model接收参数
添加用户

Action代码:

public class UserAction extends ActionSupport {		private User user;		public String add() {		System.out.println("name=" + user.getName());		System.out.println("age=" + user.getAge());		return SUCCESS;	}	public User getUser() {		return user;	}	public void setUser(User user) {		this.user = user;	}	}

DoMainModel代码:

public class User {	private String name;	private int age;	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public int getAge() {		return age;	}	public void setAge(int age) {		this.age = age;	}}

像上面这样就是使用dimainmodel来接收参数.

如果说User只有name,age,但是页面有额外的其他参数,如sex等.

可以使用一个VO来接收参数.

public class UserVO {	private String name;	private String password;	private String confirmingPassword;
//GET AND SET}

这里的dimainmodel就是为了公用吧.VO针对点.

三.用ModelDriven接收参数,不常用

模型驱动这种方法并不常用.

UI代码:

 使用ModelDriven接收参数
添加用户

Action代码:

注意:实现了ModelDriven.<User>,并且需要new一个User.

public class UserAction extends ActionSupport implements ModelDriven
{ private User user = new User(); public String add() { System.out.println("name=" + user.getName()); System.out.println("age=" + user.getAge()); return SUCCESS; } @Override public User getModel() { return user; } }

Model->User.java代码:

public class User {	private String name;	private int age;	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public int getAge() {		return age;	}	public void setAge(int age) {		this.age = age;	}}

实现了ModelDriven.<User>,进入action,将给新new出的User的name和age进行自动赋值.这种方法不常用.如图所示:

(四)Struts2传参的中文问题

1.首先提到的就是如果参数是中文,就不要用get,用post.

2.在struts.xml中:

不过好像貌似没用.

转载于:https://my.oschina.net/zhaoqian/blog/182603

你可能感兴趣的文章
java分析jvm常用指令
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
阿里百川码力APP监控 来了!
查看>>
使用dotenv管理环境变量
查看>>
温故js系列(11)-BOM
查看>>
Vuex学习
查看>>
bootstrap - navbar
查看>>
切图崽的自我修养-[ES6] 编程风格规范
查看>>
服务器迁移小记
查看>>
FastDFS存储服务器部署
查看>>
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
Java B2B2C多用户商城 springcloud架构- common-service 项目构建过程(七)
查看>>
杨老师课堂之ArrayList集合常用方法解析
查看>>
ElasticSearch Client详解
查看>>
新零售讲堂之时代下的传统零售业,何去何从?
查看>>
c++读取和写入TXT文件的整理
查看>>