2、Action的传值方式

 

2、Action的传值方式

1、字段驱动方式

所谓字段驱动方式就是通过字段进行数据传递。在Struts2中我们可以直接在Action里定义各种Java基本类型的字段,使这些字段与表单数据相对应,并利用这些字段进行数据传递。

第一篇中提到的登陆案例,用的就是字段驱动方式。

UserAction.java

01package wwfy.action.user;
02  
03public class UserAction {
04  
05    private String username;
06    private String password;
07  
08    public String getUsername() {
09        return username;
10    }
11  
12    public void setUsername(String username) {
13        this.username = username;
14    }
15  
16    public String getPassword() {
17        return password;
18    }
19  
20    public void setPassword(String password) {
21        this.password = password;
22    }
23  
24    public String execute() throws Exception {
25        System.out.print(username+"--------"+password);
26        // 只有用户名为wwfy,密码为123456方可成功登陆
27        if (username.equals("wwfy") && password.equals("123456")) {
28            return "success";
29        } else {
30            return "error";
31        }
32    }
33}

 

这个Action中的定义了两个字符串字段"username”和"password”,这两个字段分别对应登陆页面上的“用户名”和“密码”两个表单域。

 

2、模型驱动方式

所谓模型驱动方式是指通过JavaBean模型进行数据传递。采用这种方式,JavaBean所封装的属性与表单的属性一一对应,JavaBean将成为数据传递的载体。使用模型驱动方式,Action类通过get*()的方法来获取模型,其中“*”代表具体的模型对象。

首先,我们创建一个模型:

01package wwfy.javabean.vo;
02  
03public class User {
04    private String username;
05    private String password;
06  
07    public String getUsername() {
08        return username;
09    }
10  
11    public void setUsername(String username) {
12        this.username = username;
13    }
14  
15    public String getPassword() {
16        return password;
17    }
18  
19    public void setPassword(String password) {
20        this.password = password;
21    }
22}

 

接下来定义Action类,两个字段已经不再单独定义,而是定义一个User类型的域模型:

01package wwfy.action.user;
02  
03import wwfy.javabean.vo.User;
04  
05public class User2Action {
06    private User user;
07  
08    public User getUser() {
09        return user;
10    }
11  
12    public void setUser(User user) {
13        this.user = user;
14    }
15      
16    public String execute() throws Exception{
17        if(user.getUsername().equals("wwfy")&&user.getPassword().equals("123456")){
18            return "success";
19        }
20        else{
21            return "error";
22        }
23    }
24}

 

在使用模型驱动传值的时候需要注意,如果JSP页面是负责取值的,那么取值的格式必须为“模型对象名.属性名”;如果JSP页面是负责传值的,那么传值的格式可以为“模型对象名.属性名”,也可以直接是“属性名”。

接下来对登陆页和成功页进行改动:

login2.jsp:

01<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
02<%@ taglib prefix="s" uri="/struts-tags" %>
03<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
04<html>
05  <head>
06    <title>登陆页面</title>
07  </head>
08    
09  <body>
10    <center>
11        <s:form action="loginUser2">
12                <s:textfield name="user.username" label="用户名"></s:textfield>
13                <s:password name="user.password" label="密码"></s:password>
14                <s:submit value="确定"/>
15                <s:reset value="重置"/>
16        </s:form>
17    </center>
18  </body>
19</html>

 

success2.jsp:

01<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
02<%@ taglib prefix="s" uri="/struts-tags" %>
03<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
04<html>
05  <head>
06    <title>成功页面</title>
07  </head>
08    
09  <body>
10    <p align="center">登陆成功!!!您的用户名是<s:property value="user.username"></s:property></p>
11  </body>
12</html>

 

struts.xml里增加配置

1<action name="loginUser2" class="wwfy.action.user.User2Action">
2    <result name="success">/jsp/success2.jsp</result>
3    <result name="error">/jsp/error.jsp</result>
4</action>

这样就完成了模型驱动传值.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值