Action传值

来源:互联网 发布:设计动画人物的软件 编辑:程序博客网 时间:2024/06/04 18:12

Action实现数值传递主要有两种方式: 一是字段驱动方式(Field-driven); 二是模型驱动方式(Model-driven)。

1 字段驱动方式

在Action中定义各种Java基本类型的字段,这些字段与表单数据相对应,并利用这些字段进行数据传递。

Action代码:

package com.user;public class UserAction {    private String username;    private String password;    public String getUsername() {        return this.password;    }    public String getPassword() {        return this.password;    }    public String setUsername(String username) {        this.username = username;    }    public String setPassword(String password) {        this.password = password;    }    public String execute() throws Exception {       if (username.equals("admin") && password.equals("123456") {           return SUCCESS;       } else {           return ERROR;       }    }}

Login.jsp代码:

<%@ page language="java" contentType="text/html;charset=UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><html>    <head>        <title>登录页面</title>    </head>    <body>        <center>            <s:from action="loginUser">                <s:textfield name="username" label="用户名"/>                <s:textfield name="password" label="口令"/>                <s:submit value="确定"/>                <s:reset value="重置"/>            </s:from>        </center>    </body></html>
success.jsp
<%@ page language="java" pageEncoding="UTF-8"%><html>    <head>        <title>成功页面</title>    </head>    <body>        <p align="center">            <s:property vlaue="username"/>登录成功!        </p>    </body></html>
error.jsp
<%@ page language="java" pageEncoding="UTF-8"%><html>    <head>        <title>失败页面</title>    </head>    <body>        <p align="center">            <s:property vlaue="username"/>登录失败!        </p>    </body></html>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"        "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="com" extends="struts-default"><action name="loginUser" class="com.user.UserAction"><result name="success">/jsp/success.jsp</result><result name="error">/jsp/error.jsp</result></action></package></struts>

在userAction中定义了两个字符串类型字段“username”和“password”,这两个字段分别与登录页面中的“用户名”和“口令”两个表单域相对应。在实际应用中,登录页面所提交的表单数据被各自映射到对应Action中的字段。由此Action获得了外界传入的数据。

2 模型驱动方式

模型驱动是指通过JavaBean模型进行数据传递。采用这种方式,JavaBean所封装的属性与表单数据的属性一一对应,JavaBean将成为数据传递的载体。

User.java

package com.user;public class User {private String username;private String password;public String getUsername() {return username;}public String getPassword() {return password;}public void setUsername(String username) {this.username = username;}public void setPassword(String password) {this.password = password;}}
UserAction.java

package com.user;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private User user;public User getUser() {return user}public void setUser(User user) {this.user = user;}public String execute() throws Exception {if (user.username.equals("admin") && user.password.equals("123456")) {return SUCCESS;} else {return ERROR;]}}
login.jsp

<%@ page language="java" contentType="text/html;charset=UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><html>    <head>        <title>登录页面</title>    </head>    <body>        <center>            <s:from action="loginUser">                <s:textfield name="user.username" label="用户名"/>                <s:textfield name="user.password" label="口令"/>                <s:submit value="确定"/>                <s:reset value="重置"/>            </s:from>        </center>    </body></html>
success.jsp

<%@ page language="java" pageEncoding="UTF-8"%><html>    <head>        <title>成功页面</title>    </head>    <body>        <p align="center">            <s:property vlaue="user.username"/>登录成功!        </p>    </body></html>
JSP页面是负责取值的,取值的格式必须为“模型对象名.属性名”;JSP页面是负责传值的,那么传值的格式可以为“模型对象名.属性名”,也可以直接是“属性名”。





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高铁票订错时间怎么办 微信音频视频打出没反应怎么办 海尔超低温保存箱低温报警怎么办 孕期吃了烧烤蔬菜怎么办 百姓动迁政府说话不算数怎么办 孕妇用了青草膏怎么办 药材不知道啥名怎么办 诛仙手游鸿蒙紫气不见了怎么办 紫叶兰叶干了怎么办 绿萝叶子中毒了怎么办? 怀孕初期胃疼的厉害怎么办 怀孕胃疼的厉害怎么办 天然气热水器风口一封闭怎么办 热水器着火后火变大怎么办? 人如果没有天魂怎么办 被鬼魂附体了该怎么办 被吸血蠓咬了怎么办 股份公司大股东占用资金怎么办 抱小孩抱的胳膊疼怎么办 一个月好几个性伴侣怎么办 惹了势力大的人怎么办 给佛像换新法器旧的怎么办 cad填充图案拾取不了点怎么办 cad填充图案太密怎么办 桃木葫芦挂件裂口了怎么办 皮肤被太阳晒伤变黑怎么办 皮肤又粗又黑该怎么办 盆栽红薯长疯了怎么办 四叶草叶子发黄怎么办 美篇不想让别人看到怎么办 黑魂3暗灵入侵怎么办 问道手游账号忘了怎么办 问道手游密码忘了怎么办 毒蚂蚁咬了红肿怎么办 电脑开机后有电流声怎么办 小学生阅读方面不会总结怎么办 天龙八部手游转职装备怎么办 投简历没回应该怎么办? 开车开的腰疼怎么办 开车腰疼怎么办吃什么 58简历投错了怎么办