Struts2接受参数的几种类型 

大概有这几种类型:

1.使用Action的属性接受参数

       在Action中加入成员变量,配置Getter和Setter方法,Getter而和Setter方法的名字和表单中input标签的name属性一致(简单来说就是Action中变量的名和表单中input的name值一致)

2.使用DomainModel接收参数

JSP:

<form action="LoginAction.action" method="post">
User : <input type="text" name="user.username"><br> Password :<input
type="password" name="user.password"> <br>
<input type="submit"
value="submit">
</form>

User类:

public class User {
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;
}
}

Action类:

public class LoginAction extends ActionSupport implements ModelDriven<User> {
private User user ;
public String login(){
System.out.println("username = " + user.getUsername());
System.out.println("password = " + user.getPassword());
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}

3.使用ModelDriven接收参数(推荐使用)

   和Domain主要不同:

    1.User对象需要实例化

    2.不需要给User对象配置getter和setter方法

    3.需要实现ModelDriven接口

    4.JSP中input的name属性不需要加对象.(user.)

JSP:

<form action="LoginAction.action" method="post">
User : <input type="text" name="username"><br> Password :<input
type="password" name="password"> <br>
<input type="submit"
value="submit">
</form>

USER类和上一样。。

Action:

public class LoginAction extends ActionSupport implements ModelDriven<User> {

private User user = new User();
public String login(){

System.out.println("username = " + user.getUsername());
System.out.println("password = " + user.getPassword());

return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}

(当然获取request后再取参数也是可以的)    

接受复杂类型参数(list<String>和list<Object>)

1、参数是简单的List<String>

JSP:

<form action="LoginAction.action" method="post">
User : <input type="text" name="username"><br> Password :<input
type="password" name="password"> <br>
book1: <input type="text" name="bookList[0]"><br>
book2: <input type="text" name="bookList[1]"><br>
book3: <input type="text" name="bookList[2]"><br>
<input type="submit"
value="submit">
</form>

User类:

public class User {
private String username;
private String password;
private List<String > bookList;
public List<String > getBookList() {
return bookList;
}
public void setBookList(List<String > bookList) {
this.bookList = bookList;
}
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;
}
}

Action类:

public class LoginAction extends ActionSupport implements ModelDriven<User> {

private User user = new User();
public String login(){

System.out.println("username = " + user.getUsername());
System.out.println("password = " + user.getPassword());
for (String book : user.getBookList()) {
System.out.println("book= " + book);
}

return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}

2.接受复杂类型参数(list<Object>)

JSP:

<form action="LoginAction.action" method="post">
User : <input type="text" name="username"><br> Password :<input
type="password" name="password"> <br>
book1: <input type="text" name="userList[0].username"><br>
book2: <input type="text" name="userList[1].username"><br>
book3: <input type="text" name="userList[2].username"><br>
<input type="submit"
value="submit">
</form>

USER类:

public class User {
private String username;
private String password;
private List<User> userList;

public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
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;
}
}

Action类:

public class LoginAction extends ActionSupport implements ModelDriven<User> {

private User user = new User();
public String login(){

System.out.println("username = " + user.getUsername());
System.out.println("password = " + user.getPassword());
for (User u : user.getUserList()) {
System.out.println("User = " + u.getUsername());
}

return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}

Struts2接受参数的几种类型和接受复杂类型参数(list<String>和list<Object>)的更多相关文章

  1. Struts 2 初步入门(五)之接受参数

    1.使用action的属性接受参数 执行顺序为:前端提交参数--->LoginAction.do进行处理--->处理成功后,跳转到sucess.jsp文件. (1)新建login.jsp文 ...

  2. Struts2-Action接受参数方式、method属性使用及通配符的配置

    一.Action接受参数的方式 1.属性方式接收 首先编写一个用于上传参数的页面 <%@ page contentType="text/html;charset=UTF-8" ...

  3. jQuery Ajax传值给Servlet,在Servlet里Get接受参数乱码的解决方法

    最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如 ...

  4. node基础11:接受参数

    1.接收参数 在Node中接受GET/POST请求的参数不像PHP那样,在PHP中直接有全局变量$_GET,$_POST来接受url,或者请求体重的参数. 在node中接受GET参数使用url.par ...

  5. PHP CLI下接受参数的几种方法

    PHP CLI(命令行模式下)接受参数有多种方法: (1)使用$argv接受参数 <?php //变量仅在 register_argc_argv 打开时可用. print_r($argc); / ...

  6. JSP 页面传参和接受参数

    <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding=&q ...

  7. 把程序嵌入网页之ATL编写ActiveX[标准窗口+接受参数]

    从VS2010开始ATL ActiveX支持IObjectSafety接口,所以用VS2010来编写,新建一个ATL项目 向导的第一页没什么东西,直接下一步,选项可以根据具体需求调整 点“完成”,切换 ...

  8. SpringMVC参数绑定(从请求中接受参数)

    参数绑定(从请求中接收参数) 1)默认类型: 在controller方法中可以有也可以没有,看自己需求随意添加. httpservletRqeust,httpServletResponse,httpS ...

  9. yii---进行接受参数

    GET接受参数: Yii::$app->request->get($key, $default):第一个参数($key)为用户get请求的key,第一个参数选填:第二个参数($defaul ...

随机推荐

  1. mysql 创建数据 utf8

    CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  2. 关于mysql 删除数据后物理空间未释放(转载)

    转自 关于mysql 删除数据后物理空间未释放(转载) - NETDATA - 博客园http://www.cnblogs.com/shawnloong/archive/2013/02/07/2908 ...

  3. JavaBean-- DAO设计模式

    企业分层架构: 资源层:主要是数据库的操作层,里面可以进行各种数据存储,但是这些数据存储操作的时候肯定依靠SQL语句,如果在一个程序中出现过多的SQL语句,JSP页面非常复杂,不便于程序的可重用性 数 ...

  4. javascript 中arguments.callee 调用自身

    一.Arguments该对象代表正在执行的函数和调用他的函数的参数.[function.]arguments[n]参数function :选项.当前正在执行的 Function 对象的名字.n :选项 ...

  5. VI中的批量替换 (转载)

      1) 文件内全部替换:   :%s#abc#123#g (如文件内有#,可用/替换,:%s/abc/123/g)   --注:把abc替换成123   (或者: %s/str1/str2/g 用s ...

  6. js判断是否是正整数,js判断是否是数字

    //判断字符串是否为数字 function checkRate(input) { var re = /^[0-9]+.?[0-9]*$/; if (!re.test(input.rate.value) ...

  7. QWidget QMainWindow QDialog 三个基类的区别

    Qt类是一个提供所需的像全局变量一样的大量不同的标识符的命名空间.通常情况下,你可以忽略这个类.QObject和一些其它类继承了它,所以在这个Qt命名空间中定义的所有标识符通常情况下都可以无限制的使用 ...

  8. 小红的难题<递推>

    题意:五个数:N,x,y,A,B;N是台阶总数,x,y是每步可以走x或者y步,但是一定要走到A,B台阶上. 思路:学长给的题解,递推,稍微优化一点. >重点在递推 #include<cst ...

  9. jQuery判断当前元素是第几个元素&获取第N个元素

    假设有下面这样一段HTML代码: <ul> <li>jQuery判断当前元素是第几个元素示例</li> <li>jQuery获取第N个元素示例</ ...

  10. css3的::selection属性

    大家都知道浏览器对选中的文本默认样式都是统一的,Windows下是一个深蓝色的背景,白字的前景,而在Mac下是一个淡蓝色背景,白色字体,就如上图所展示的一样,自从有了这个“::selection”选择 ...