以下形式中最常用的是前两种

1. 使用Action的属性:

在action 里面定义要接收的参数,并提供相应的setter,getter,和提交参数的名称一致,

并不用做数据类型的转换
相应提交方式可以用get 和post

如:testAction? name=admin

jsp:
 <form action="login" method="post" name="form1">
用户名:<s:textfield name="username"/><br/>
密 码:<s:password name="password"/><br/>
<s:submit value="提交"/>
</form>

java:

action:

 public class TestAction extends ActionSupport{
private String username;
private String password; 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. 使用DomainModel:

在Action 里面不用很多的属性,而是用Model 层用到的模型,保存它的一个对象。相应提交方式可以用get 和post,
如:testAction? resBananRc.name=admin

jsp:

 <form action="login" method="post" name="form1">
用户名:<s:textfield name="users.username"/><br/>
密 码:<s:password name="users.password"/><br/>
<s:submit value="提交"/>
</form>

java

action:

 public class TestAction extends ActionSupport{
//错误的写法,不能自己实例化,struts会自动实例化 private Users users = new Users();
private Users users; public Users getUsers(){ return users; } public void setUsers(Users users){ this.users=users; }

entity:

 public class Users{
private String username;
private String password; 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;
}
}

3. 使用DTO--数据传输对象(Data Transfer Object)

它的作用是接收参数和传递参数,并不是项目中的实体类。

如用户注册时,会用到确认密码,所以要先把参数接收过来,做处理后,再传递给相应方法去创建User 对象。

提交参数的方式的Domain Model 方式的相同。

DTO:

 public class UserDTO {
private String name;
private String password;
private String confirm; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getConfirm() {
return confirm;
}
public void setConfirm(String confirm) {
this.confirm = confirm;
}
}

Action:

 public class TestAction extends ActionSupport{
private static final long serialVersionUID = -7463970150000893325L;
private UserDTO userDTO; public UserDTO getUserDTO() {
return userDTO;
}
public void setUserDTO(UserDTO userDTO) {
this.userDTO = userDTO;
}
public void execeute() {
System.out.println("姓名: " + userDTO.getName());
}
}

4.使用ModelDriven:

在创建Action 的时候,Action 实现了ModelDriven 接口,去调用接口的getModel()方法,取到了相关对象。
相应提交方式可以用get 和post

如:testAction? name=admin

jsp:

 <form action="login" method="post" name="form1">
用户名:<s:textfield name="username"/><br/>
密 码:<s:password name="password"/><br/>
<s:submit value="提交"/>
</form>

java

action:

 public class sysAction extends ActionSupport implements ModelDriven<User>{
private User user = new User(); //手动实例化 public User getModel() {
return user; //返回实例
}
}

5.使用Request对象:

此方法与与传统的JSP 等传接参数一样,即使用request. getParameter(“”)方法

 public class TestAction extends ActionSupport{
private static final long serialVersionUID = -7463970150000893325L; public void execeute() {
String name = super.getRequest().getParameter("paraName");
System.out.println("姓名:" + name);
}
}

struts2接收参数的5种方法的更多相关文章

  1. struts2 Action 接收参数的三种方法

    刚学Struts2 时 大家可能遇到过很多问题,这里我讲一下Action 接收参数的三种方法,我曾经在这上面摔过一回.所以要警醒一下自己..... 第一种:Action里声明属性,样例:account ...

  2. 【springmvc Request】 springmvc请求接收参数的几种方法

    通过@PathVariabl注解获取路径中传递参数 转载请注明出处:springmvc请求接收参数的几种方法 代码下载地址:http://www.zuida@ima@com/share/1751862 ...

  3. HttpServletRequest接收参数的几种方法

    HttpServletRequest接收参数的几种方法 我们经常用servlet和jsp, 经常用request.getParameter() 来得到数据. request.getParameter( ...

  4. Struts2接收参数的几种方式

    一.用Action属性 在action里定义要接收的参数,并提供相应的set和get方法. 如: public class LoginAction extends ActionSupport { pr ...

  5. springmvc请求接收参数的几种方法

    一.通过@PathVariable获取路径中的参数 @RequestMapping(value="user/{id}/{name}",method=RequestMethod.GE ...

  6. struts2接收参数的几种形式

    1.使用属性 HTML: <form action="login" method="post" name="form1"> 用户 ...

  7. Struts2中Action接收参数的四种形式

    1.Struts2的Action接收参数的三种形式.      a. 使用Action的属性接收(直接在action中利用get方法来接收参数):                   login.js ...

  8. SpringBoot接收前端参数的三种方法

    都是以前的笔记了,有时间就整理出来了,SpringBoot接收前端参数的三种方法,首先第一种代码: @RestController public class ControllerTest { //访问 ...

  9. jsp值传到后台Struts2中的action三种方法

    Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="post" n ...

随机推荐

  1. java 测试IP

    public static long calSpeed(String ip) { Runtime runtime = Runtime.getRuntime(); // 获取当前程序的运行进对象 Pro ...

  2. Docker学习计划

    刚开始学习Docker的时候,找资料在网上看到最多的是Docker的好处.比如: 1.Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多 2.Docker 对系统资源的利用率很高, ...

  3. PHP加水印代码 支持文字和图片水印

    PHP加图片水印.文字水印类代码,PHP加水印类,支持文字图片水印的透明度设置.水印图片背景透明.自己写的一个类,因为自己开发的一套CMS中要用到,网上的总感觉用着不顺手,希望大家也喜欢这个类,后附有 ...

  4. 如何解决Ajax跨域问题-1

    如何解决Ajax跨域问题 最近在做AJAX调用C的问题,出现跨域问题,学习总结如下: 在做ajax读取数据的时候,经常会遇到ajax需要跨域的问题,但由于浏览器安全方面的限制,XMLHttpReque ...

  5. 安卓版php服务器的mysql数据库增删改查简单案例

    界面: index.php文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  6. 基因探针富集分析(GSEA)& GO & pathway

    http://blog.sina.com.cn/s/blog_4c1f21000100utyx.html GO是Gene Ontology的简称,是生物学家为了衡量基因的功能而而发起的一个项目,从分子 ...

  7. DELPHI判断是否64位操作系统

    function IsWin64: Boolean;var  Kernel32Handle: THandle;  IsWow64Process: function(Handle: Windows.TH ...

  8. MariaDB与MySQL在一台服务器同时运行

    [root@HE3 ~]#groupadd mariadb -g 513 [root@HE3 ~]#useradd-u 513 -gmariadb -s /sbin/nologin -d /home/ ...

  9. iOS oc和swift中协议的使用

    创建一个空的工程 在工程中我们新建一个类 继承与NSObject 定义一个协议‘ @protocol UpdateAlertDelegate <NSObject> //这里的红色字体就是我 ...

  10. Raphael的Braille例子

    Raphael的Braille例子: 注意里面的split(' ')方法,竟然会split出来空元素: <%@ page language="java" contentTyp ...