struts2 传值方式

Struts2的三种传值方式比较(附demo) NULL 博文链接:https://jayung.iteye.com/blog/1881075 立即下载
如何把登陆页面中的用户名传递到登录成功的页面中呢?
有三种方式,
 
1,使用默认的action的传递方式。
2,自定义一个vo,在action中使用这个vo
3,使用ModelDriven的方式。
下面分别叙述。
 
1,使用默认的action的传递方式。
action文件如下:
package struts2.login;
 
public class LoginAction {
   
    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;
    }
   
    public String execute() {
        System.out.println (LoginAction.class.hashCode());
        if (username.equalsIgnoreCase("aaa") &&
                password.equals("aaaaaa")) {
            return "loginSuc";
        }
        else {
            return "loginFail";
        }
    }
 
}
 
 
登陆成功的文件如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s"%>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
 
 
欢迎您,<s:property value="username" /> 登录成功。
 
2,自定义一个vo,在action中使用这个vo
自定义vo文件名:LoginVO.java
文件内容:
package struts2.login;
 
public class LoginVO {
     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文件中,要使用这个vo
文件内容:
package struts2.login;
 
public class LoginAction {
     private LoginVO user = null;
 
    public String execute() {
        System.out.println (LoginAction.class.hashCode());
        if (user.getUsername().equalsIgnoreCase("aaa") &&
                user.getPassword().equals("aaaaaa")) {
            return "loginSuc";
        }
        else {
            return "loginFail";
        }
    }
 
     public LoginVO getUser() {
        return user;
    }
 
    public void setUser(LoginVO user) {
        this.user = user;
    }
 
}
 
登陆成功的文件如下:  www.2cto.com
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s"%>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
 
 
欢迎您,<s:property name="user.username"> 登录成功。
 
注意login文件的部分也要进行修改
文件内容如下:
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<title>login2</title>
 
<form action="login.action" method="post">
  username:<input type="input"  name="user.username" ><br>
  password:<input type="input"  name="user.password" ><br>
  <input type="submit" value="登录">
</form>
 
3,使用ModelDriven的方式。
同样也需要一个vo,这个vo和方法2中的一致,但是action中的写法就不一样了。
action文件内容如下:
package struts2.login;
 
import com.opensymphony.xwork2.ModelDriven;
 
public class LoginAction  implements ModelDriven<LoginVO> {
     @Override
    public LoginVO getModel() {
        // TODO Auto-generated method stub
        return user;
    }
 
    private LoginVO user = new LoginVO();
    public String execute() {
        System.out.println (LoginAction.class.hashCode());
        if (user.getUsername().equalsIgnoreCase("aaa") &&
                user.getPassword().equals("aaaaaa")) {
            return "loginSuc";
        }
        else {
            return "loginFail";
        }
    }
}
 
而登陆成功的页面和login的文件则不需要追加user的前缀,即和方法1的文件内容一样。
 
三种方法的总结:
第一种方法把form的值都放在action文件中,当form提交的项目很多的时候,action的内容将变得很多,很臃肿。项目少的时候可用。
 
第二种方法将form的值单独放在vo中,解决了action文件臃肿的问题,同时使form和action分开,较好。但是需要在设置和获取的 jsp 页面上进行标识。
 
第三种方法在第二种方法的基础上,通过实现特定的接口,去掉了action中的set和get方法,同时去掉了jsp页面上的标识。使后台程序的logic更加清晰
SUMO仿真教程(5) —— 使用“XML“语言自定义构建路网 文章目录一.简要介绍1.node file2.edge file3.lane definitions(1)路段细分(2)邻近的对向车道(3)删除边或车道4.type file(1)简要概述(2)edge定义中引用type文件的示例(3)指定车辆种类的速度限制5.connections file(1)简要概述:(2)connection的属性参数(3)删除连接(4)设置连接的优先级(5)同一边的多个连接二.演示示例:1.自定义编写node file2.自定义编写edge file3.自定义编写type fil 阅读详情

相关推荐

告别手动改Hex!用Vector HexView命令行5分钟搞定固件数据“乾坤大挪移”

本文详细介绍了如何利用Vector HexView命令行工具快速实现嵌入式固件数据的自动化迁移,告别手动修改Hex文件的繁琐流程。通过实战案例和脚本示例,展示了如何5分钟内完成数据地址范围的重新映射,提升嵌入式开发效率,特别适用于烧录文件的内存布局调整。

weixin_30635053的博客 711

form表单中组件的取值

form表单中组件值的获取代码如下:获取select的选中的值获取input=radio的值 代码如下: &lt;div class="search_div"&gt; &lt;form class="form-inline"&gt; &lt;div class="form-group"&gt; &lt;label&gt;

chenmin_test的博客 1376

Halcon窗体开发避坑指南:C#自定义控件实现7大图像交互功能

本文详细介绍了如何利用C#封装自定义Halcon控件,以解决原生HWindowControl功能不足的问题。通过实战代码,展示了如何实现图像按比例显示、鼠标拖动缩放、灰度值读取、图像保存、截图及图形叠加等七大核心交互功能,并重点剖析了内存管理、坐标转换等开发避坑要点,帮助开发者构建稳定可复用的机器视觉组件库。

weixin_29251131的博客 292

form表单取值

jquery取值 <form action="" id="test_form"> </form> 使用:var data = $("#test_form").serializeJson();//返回json对象 输出:序列化为json格式为:{key1:value1,key2:value2} JSON.stringify(data) 转换为JSON字符串传给后端 ----------------------------------------------------..

qq_41816742的博客 1094

5分钟搞定Vivado IP核的VCS仿真:从Export脚本到Verdi波形查看全流程

本文详细介绍了如何利用Vivado的Export Simulation功能,快速搭建Vivado IP核的VCS与Verdi联合仿真环境。通过自动化脚本生成、FSDB波形配置及高效调试技巧,实现从工程导出到波形查看的全流程,大幅提升FPGA验证效率,尤其适合IC验证工程师和竞赛团队。

weixin_29306261的博客 483

实战指南:如何用DCCRN模型提升语音增强效果(附代码示例)

本文提供了基于DCCRN模型进行语音增强的实战指南。通过深入解析复数网络如何协同处理语音的幅度与相位信息,并附有完整的PyTorch代码实现,帮助开发者从数据准备、模型搭建到训练调优,构建高效的实时语音增强系统,有效提升嘈杂环境下的语音清晰度。

weixin_29054245的博客 479

strut2的form标签

我们可以利用struts2的表单标签,做很多事情。比如收集用户的注册信息、修改用户信息等。 struts2中,界面中变量和action中变量的交换,通过名字来找映射,相同名字的会自动对应起来,前提条件是action中有该名字变量的setter和getter方法。 struts2的select标签: 通过这个标签,可以给用户提供一个下拉列表,同时也可以在显示信息的时候,初始化为用户原先

huahuaspy的专栏 639

Redis【实战篇】---- 分布式锁-redission

重入问题:重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都是使用synchronized修饰的,假如他在一个方法内,调用另一个方法,那么此时如果是不可重入的,不就死锁了吗?所以可重入锁他的主要意义是防止死锁,我们的synchronized和Lock锁都是可重入的。不可重试:是指目前的分布式只能尝试一次,我们认为合理的情况是:当线程在获得锁失败后,他应该能再次尝试获得锁。

是微风,是晚霞,是无可替代 1万+

struts2从form取值的三种方式

如何把登陆页面中的用户名传递到登录成功的页面中呢? 有三种方式, 1,使用默认的action的传递方式。 2,自定义一个vo,在action中使用这个vo 3,使用ModelDriven的方式。 下面分别叙述。 1,使用默认的action的传递方式。 action文件如下: package struts2.login; public class LoginAction {   ...

chenxingzi的博客 216

【单点登录】SSO单点登录sa-token接入流程详解

Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。Sa-Token 目前主要五大功能模块:登录认证、权限认证、单点登录、OAuth2.0、微服务鉴权。

Hello, New World! 1795

将Keil中的变量数组导出

首先,写好导出数据的函数。

小柚子的博客 1952

struts html id 属性,struts2之form标签theme属性详解

原标题:struts2之form标签theme属性详解struts2中theme属性包括xhtml,html,simple,ajax 。默认是xhtmltheme:设置struts2标签的主题,默认为xhtml。 theme=xhtml时:会默认额外生成tr,td。 theme=simple时:就生成标签所对应的html标签形式。在默认情况下,表单元素是分布在不同行的。如下代码: 我们看着以...

weixin_35304632的博客 263

Cadence PCB仿真 使用Allegro PCB SI为BRD文件创建通用型IBIS模型的方法图文教程

本文简单介绍使用Allegro PCB SI软件为BRD PCB设计文件中的元器件创建IBIS模型的方法。

fydar的博客 2171

Struts2的4种传值方式

Struts2的4种传值方式:1.通过request/session等传值可通过ServletActionContext.getRequest()/getSession()等方法来获得request/session对象,然后调用其中的setAttribute(),getAttribute(),getParameter()方法来传值。public class UserAction{ pu...

灰太狼 4907

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

struts2 三种传值方式

1. * 第一种传值 struct.xml中的 action配置            student.jsp     浏览器中   * action ! 方法名 +参数值值   * 0912_struts2_action2/stu/stu!add?id=1&name=w   2.* 第二种传值方法,            student.jsp

haiking5253的专栏 1186

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Struts2的传值方式

从前台到后台,struts2的传值方式共三种:属性驱动、对象驱动以及模型驱动。 一、属性驱动 页面代码:input框中的name值只是填写单纯的属性名称 &lt;form action="FieldDrivenValueAction" method="POST"&gt; 用户名:&lt;input name="username"&gt; &lt;br&gt; 密码:&lt;

ITdevil的博客 1699

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

struts2 Action传值方式

[size=large][b]struts2 传值方式[/b][/size] 如何把登陆页面中的用户名传递到登录成功的页面中呢? 有三种方式, 1,使用默认的action的传递方式。 2,自定义一个vo,在action中使用这个vo 3,使用ModelDriven的方式。 下面分别叙述。 1,使用默认的action的传递方式。 action文件如下: [cod...

iteye_3352的博客 221

Struts2传值方式

1.普通的传值方式UserActionForCommonParam类Action类接收三个参数,分别是id,username,content.[html] view plain copy  package com.struts.action;    public class UserActionForCommonParam {      private int id;      private S...

沐子 138

Struts2的三种传值方式

1.普通的传值方式 UserActionForCommonParam类 Action类接收三个参数,分别是id,username,content. package com.struts.action; public class UserActionForCommonParam { private int id; private String username;

Manchester117的专栏 9677

Struts2中Action的传值方式

转载自:http://www.cnblogs.com/fmricky/archive/2010/05/20/1739734.html 1、字段驱动方式 所谓字段驱动方式就是通过字段进行数据传递。在Struts2中我们可以直接在Action里定义各种Java基本类型的字段,使这些字段与表单数据相对应,并利用这些字段进行数据传递。 第一篇中提到的登陆案例,用的就是字段驱动方式。

1433

Struts2向页面传值的三种方式

首先,我们看一下struts的配置文件&lt;!-- name:包名,用于被别的包调用或继承   extends:继承哪个包,会继承该包下配置信息和拦截器等等   namespace:选填,url连接必须加入namespace属性值。如下:/new/action.xxx --&gt; &lt;package name="test" namespace="/new" extends="struts-...

小熊来了 4015

Struts2的四几种传值方式

1.通过request/session等传值 ServletActionContext.getRequest().getParameter(“username”); 2.实体类传值 3.使用model传值:建立一个model类Uesr来存储数据,一个UserAction要继承ActionSupport来操作, public class UserAction extends ActionSuppor...

qq_43162661的博客 273

Struts2传值的3种方式

以前在Servlet中有两种传值方式: 第一种:通过得到当前的Request对象,通过request.setAttribute(key,value)将值绑定到request中,通过转发,就能在不同的Servlet或JSP中通过request.getAttribute(key)进行取值。 第二种:通过当前的request.getSession().setAttribute(key,value)将

Jston的专栏 5328

struts2中jsp页面传值到action方式总结

jsp页面跟通常的html传值一样 通常有两种方式 1.form表单传值 2.url方式传值 通常后台接受前端传值 都是用的 request.getParameter("username") 但是在struts框架下 可以用set方法让action自动接收 也更方便 所以 action接收值也有两种方式 1.request.getParameter("usern

chenfeiguo的博客 312

struts2中action的传值方式

在struts2中action的传值方式一般存在以下三种:

成长的烧年 1466

struts2中jsp页面传值到action的两种方式

jsp页面跟通常的html传值一样 通常有两种方式 1.form表单传值 2.url方式传值 通常后台接受前端传值 都是用的 request.getParameter(“username”) 但是在struts框架下 可以用set方法让action自动接收 也更方便 所以 action接收值也有两种方式

sinat_27087071的博客 1911
上一篇: 优秀的程序员
下一篇: Spring依赖注入(DI)的三种方式
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值