2.vo传参模式和ModerDriven传参模式
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html
Copy上面的myStruts2项目,改名为myStruts2Vo项目。作如下修改:在LoginAction中有两个字段:username,password。把此两个属性重构到com.asm.vo.User类中,然后在LoginAction中提供User对象及相应的get/set方法。现在需要注意的是在login.jsp中会有如下的修改:
户名:<input type="text" name="user.username"><br>
密码:<input type="password" name="user.password"><br>
关键就是改掉name属性值。其它基本无变动。 后话:假如此此User对象并不能和Model层的相应对象完全对应,我们还应借助此User对象在Action中构建出Model层的相应对象,这样,在exectue方法中便能通过构建的Model对象作为参数与Model层交互。
package com.asm; import com.asm.vo.User;
import com.opensymphony.xwork2.Action; public class LoginAction implements Action{ private User user = new User(); public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} @Override
public String execute() throws Exception {
if("struts2".equals(user.getUsername())){
return "loginSuccess";
}else{
return "loginFailure";
}
} }
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/login.action" method="get">
用户名:<input type="text" name="user.username"><br/>
密码:<input type="password" name="user.password"><br/>
<input type="submit" value="login">
</form>
</body>
</html>
Copy上面的myStruts2Vo项目,改名为myStruts2Model项目。重点是修改LoginAction,修改后的主要内容如下:
package com.asm; import com.asm.vo.User;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ModelDriven; public class LoginAction implements Action,ModelDriven<User>{ private User user = new User(); @Override
public String execute() throws Exception {
if("struts2".equals(user.getUsername())){
return "loginSuccess";
}else{
return "loginFailure";
}
} @Override
public User getModel() {
return user;
} }
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/login.action" method="get">
用户名:<input type="text" name="username"><br/>
密码:<input type="password" name="password"><br/>
<input type="submit" value="login">
</form>
</body>
</html>
说明:它实现了ModelDriven接口,并使用了泛性机制(必须),因此要求jdk1.5以上。
现在需要注意的是在login.jsp中name属性值为User中两个字段,和第一个实例一样。说明:此方式一般不会使用,在此略作了解。
2.vo传参模式和ModerDriven传参模式的更多相关文章
- jQuery多图上传Uploadify插件使用及传参详解
因为工作需要,这两天接触到了Uploadify插件,由于是第一次用,花了我近一天的时间.下面我把我在用这个插件过程详细的分享出来,也让自己巩固一下,也希望能帮助到你. 所需文件: jquery-1.8 ...
- ftp传二进制文件时一定要用二进制模式,否则内容会有变化,造成后处理莫名其妙的错误,还以为传输前后内容一致,其实已变化。
ftp传二进制文件时一定要用二进制模式,否则内容会有变化,造成后处理莫名其妙的错误,还以为传输前后内容一致,其实已变化.
- ESP8266局域网 路由器下作服务器模式串口透传 arduino uno示例 模板参考2
ESP8266服务器模式串口透传编译需要下载8266的库文件后才可以正常 准备工作 下载一个Arduino IDE,下载8266的库文件ESP8266服务器模式串口透传编译 功能说明 1.直接使用路由 ...
- ESP8266局域网智能家居 路由器下作服务器模式串口透传 无线通信控制 arduino uno示例 模板参考
准备工作 下载一个Arduino IDE, 下载8266的库文件 ESP8266服务器模式串口透传编译 功能说明 1.直接使用路由器中转数据 2.手机放热点模式直接传输数据 两者有访问IP地址的差别, ...
- 基于SqlSugar的开发框架循序渐进介绍(7)-- 在文件上传模块中采用选项模式【Options】处理常规上传和FTP文件上传
在基于SqlSugar的开发框架的服务层中处理文件上传的时候,我们一般有两种处理方式,一种是常规的把文件存储在本地文件系统中,一种是通过FTP方式存储到指定的FTP服务器上.这种处理应该由程序进行配置 ...
- 关于B/S模式CGI上传文件,遇到的问题归纳(待更新。。。)
由于项目问题是基于web的,最近一直在改进web界面,由于产品需要升级,而且升级操作是由客户在web端完成,将软件包放在本地,由web上传到后台完成更新,之前做的是TFTP更新方式,但是需要借助第三方 ...
- 强大的支持多文件上传的jQuery文件上传插件Uploadify
支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...
- 图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
一 . 背景及效果 当前互联网上传文件最多的就是图片文件了,但是传统web图片的截图上传需要:截图保存->选择路径->保存后再点击上传->选择路径->上传->插入. 图片 ...
- asp.net.mvc 的单文件上传和多文件上传的简单例子
首先打开vs2012,创建空的mvc4项目,名称为MVCStudy,选择基本模板
随机推荐
- HDU 5372 Segment Game (树状数组)
题意是指第i此插入操作,插入一条长度为i的线段,左端点在b[i],删除某一条线段,问每次插入操作时,被当前线段完全覆盖的线段的条数. 题解:对于新插入的线段,查询有多少个线段左端点大于等于该线段的左端 ...
- JavaWeb-入门第一课-1.静态web动态web 2.web服务器 3.下载和安装Tomcat-web服务器
文章来源:http://www.cnblogs.com/xdp-gacl/p/3729033.html 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思 静态web资源(如html ...
- signal()信号操作
一.函数描述 #include <signal.h> typedef void (*sighandler_t)(int);sighandler_t signal(int signum, s ...
- OASGraph 转换rest api graphql 试用
创建rest api lb4 appdemo 参考提示即可 安装 OASGraph git clone https://github.com/strongloop/oasgraph.git cd oa ...
- JS 网页快捷键设置
我们希望能用快捷键代替鼠标点击做一些事情,例如一个典型的应用就是论坛上常用的Ctrl + Enter 快捷发帖子.就以Ctrl+Enter快捷发帖子为例,实质上呢,就是通过JS脚本,捕获系统的onke ...
- 【转】第六章、Linux 的文件权限与目录配置
原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php 最近更新日期:2009/08/18 Linux最优秀的地方之一, ...
- spring 使用 maven profile
先看看 maven 定义 profile 的写法 <!-- profiles --> <profiles> <profile> <activation> ...
- 解决mysql 8 安装后命令行可以连接,navicat不能连接的问题
错误代码: client does not support authentication 解决办法: 1 使用命令行进入数据库 2 选着数据库 mysql --> user mysql 3 ...
- winform自定义控件 (转帖)
定义控件 本文以按钮为例,制作一个imagebutton,继承系统button, 分四种状态 1,正常状态 2,获得焦点 3,按下按钮 4,禁用 当然你得准备一张图片,包含四种状态的样式,同样你也可以 ...
- bzoj 2286(洛谷 2495) [Sdoi2011]消耗战——虚树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2286 https://www.luogu.org/problemnew/show/P2495 ...