• Struts2接受参数的几种类型和接受复杂类型参数(list<String>和list<Object>)


     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;
    }
    }

  • 相关阅读:
    分苹果
    马拉车算法(求最长回文子串)
    KMP
    字典树
    关于子类和父类中的this的用法
    最长上生子序列LIS
    sass
    黑马程序员----java基础笔记下(毕向东)
    DOM
    ajax教程
  • 原文地址:https://www.cnblogs.com/Springmoon-venn/p/5582312.html
Copyright © 2020-2023  润新知