Struts2 前端数据传递机制

一、用struts2接收Form表单数据的常用几种情况

  1. 如果只是接收表单中的一两个属性值时,可以在action类中声明同名的全局私有属性,并且提供相应set以及get方法。
  2. 当有多个属性时,可以把属性封装到一个pojo类中,然后再在action类中声明一个pojo类的全局属性并提供set、get方法,通过对象.属性名的方法来获取数据。
  3. 当要获取多条数据时,在action类中声明List集合对象,把pojo类对象放进List集合中,在form表单提交时属性值用集合名称加上相应的集合下标[n],如:user[0].username 。

二、举例

以方式2为例子:

前端jsp文件 login.jsp   注意:name的写法!

<s:form action="login" method="post">
     <s:textfield name="user.username" key="username" size="20" />
     <s:password name="user.password" key="password" size="21" />
</s:form>

pojo文件 User.java

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文件 LoginAction.java

public class LoginAction extends ActionSupport{
   // get、set方法获取对象
    private User user;
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user=user;
    }
    
    // 校验
    public void validate() {
        // 密码正确与否
        DBConn db=new DBConn();
        User login=new User();
        login.setUsername(user.getUsername());
        login.setPassword(user.getPassword());
    }
    
    public String execute() throws Exception {
      
    }
}

struts.xml

<action name="login" class="org.action.LoginAction">
    <result name="success">/index.jsp</result>
    <result name="error">/error.jsp</result>
</action>

posted @ 2021-10-16 20:39  琪有此理  阅读(123)  评论(0编辑  收藏  举报