struts2属性驱动模型

Posted x_jingxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2属性驱动模型相关的知识,希望对你有一定的参考价值。

属性驱动模型的作用:

因为struts2与servlet API 实现了解耦,无法直接使用HttpServlet Request对象获取表单提交的参数,但Struts2提供了属性驱动模型机制来解决这个问题。

struts2的属性驱动模型指的是在JSP页面的每一个form中的name都在action中有一个属性与之对应。

常用的属性驱动模型有:

form表单封装在javabean对象中

form表单封装在list集合中

  页面用 username<input type="text" name="list[0].username"> <!-- 表单输入的值就是list中第0个对象的username值 --> 

form表单封装在map集合中

  页面用 username<input type="text" name="map[‘one‘].username"> <!-- 表单输入的值就是map中key为one对象的username值 -->

1、创建login.jsp页面

<form action="userManagerAction.action" method="post"> 
        <p>用户名:<input type="text" name="user.username"></p>
        <p>密码:<input type="password" name="user.password"></p>
        <p style="color: red">${message}</p>
        <p><input type="submit"></p>
</form>

2、定义属性实体类User

package com.struts2.entity;

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

3、编写action类

package com.struts2.action;

import com.struts2.entity.User;

public class UserManagerAction {

    private User user;  //属性封装
    private String message;
    
    public String execute(){
        System.out.println("用户名:"+user.getUsername()+"--密码:"+user.getPassword());
        
        if("admin".equals(user.getUsername()) && "123456".equals(user.getPassword())){
            message = "账号密码正确";
            return "success";
        }else{
            message = "对不起,账号密码有误";
            return "error";
        }
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
    
    
}

5、action配置

<action name="userManagerAction" class="com.struts2.action.UserManagerAction">
      <result name="success">/login.jsp</result>
      <result name="error">/login.jsp</result>
</action>

6、启动服务,访问:http://localhost:8080/struts2/login.jsp

 

以上是关于struts2属性驱动模型的主要内容,如果未能解决你的问题,请参考以下文章

Struts2属性驱动和模型驱动

Struts2 模型驱动动作中的继承可能吗?

struts2 模型驱动封装

Struts2— Result结果配置Servlet的API的访问模型驱动属性驱动

Struts2之ModelDriven的使用

struts2中获取表单数据的方式