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. 删除正在登录的SQL账号

    exec sp_who '用户名' kill @spid sp_droplogin 用户名

  2. php源码分析之php_info输出中css样式是怎么来的

    我们经常使用echo phpinfo();查看php的配置信息,但是大家知道里面的css样式是怎么来的吗? 我们查看源码(php源码/ext/standard/css.c) PHPAPI void p ...

  3. apt

    今天单元测试看到巨长字符串被加了很多引号,想起以前可以用跳脱符断行,试了不行,google说java7可以,我操. https://github.com/benelog/multiline/wiki/ ...

  4. PHP 命名空间以及自动加载(自动调用的函数,来include文件)

    这篇文章的目的是记录 1. php中的自动加载函数 __autoload(), 和 spl_autoload_register()函数, 2 .php中命名空间的使用. 一.当不使用命名空间的时候 a ...

  5. linux操作命令实验

    实验内容:文件操作与用户操作实验 实验设备(环境):电脑.Vmware WorkStation 实验步骤: 一.创建新用户bob 目的:练习useradd命令 二.为新用户bob设置口令 目的:练习p ...

  6. jdbc批量执行SQL insert 操作

    package com.file; import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayLi ...

  7. sql server 更新两个表的某个字段

    --临时表 create table tmp_cup ( a varchar(20), b varchar(50), c varchar(20) ) select * from t_customer ...

  8. JAVA基础--继承和权限控制

    1. extends继承 2. java只支持单继承,不允许多继承 修饰符 类内部 同一个包 子类 任何地方 private YES       default YES YES     protect ...

  9. 计算机学院大学生程序设计竞赛(2015’12) 1005 Bitwise Equations

    #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using ...

  10. JQuery UI 封装了一些常用模板

    1.css 他已经封装了一些css样式,如果不喜欢,可以直接修改. 2.js 他已经封装了对应的js.