Action的传值方式

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

[b]UserAction.java[/b]

public class UserAction {
private String name;
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; }
}

public String execute() throws Exception {
……
}
}
这个Action中的定义了两个字符串字段"username”和"password”,这两个字段分别对应登陆页面上的“用户名”和“密码”两个表单域。



[size=medium][color=red]2、模型驱动方式[/color][/size]
所谓模型驱动方式是指通过JavaBean模型进行数据传递。采用这种方式,JavaBean所封装的属性与表单的属性一一对应,JavaBean将成为数据传递的载体。使用模型驱动方式,Action类通过get*()的方法来获取模型,其中“*”代表具体的模型对象。
首先,我们创建一个模型:

[b]user.java[/b]

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类,两个字段已经不再单独定义,而是定义一个User类型的域模型:

[b]UserAction.java[/b]
import xxxx.User;
public class User2Action {
private User user;
public User getUser() {
return user; }
public void setUser(User user){
this.user = user; }
public String execute() throws Exception{
if(user.getUsername().equals("wwfy")
&&user.getPassword().equals("123456")){
return "success";
}
else{
return "error";
}
}
}


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

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

login2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>
<head><title>登陆页面</title></head>
<body>
<center> <s:form action="loginUser2"><s:textfield name="user.username" label="用户名"></s:textfield> <s:password name="[color=blue]user.password[/color]" label="密码"></s:password>
<s:submit value="确定"/>
<s:reset value="重置"/>
</s:form>
</center>
</body>
</html>


struts.xml

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

这样就完成了模型驱动传值.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值