Structs2 ModelDriven使用方法介绍
例子都为struts2中的文档例子
JSP提交数据:
<s:form action= "modelDrivenResult" method= "POST" namespace= "/modelDriven" >
<s:textfield label= "Gangster Name" name= "name" />
<s:textfield label= "Gangster Age" name= "age" />
<s:checkbox label= "Gangster Busted Before" name= "bustedBefore" />
<s:textarea cols= "30" rows= "5" label= "Gangster Description" name= "description" />
<s:submit />
</s:form>
|
根据数据提交的action,和namespace,修改struts.xml的内容
添加下面配置到struts.xml
< package name= "base2" namespace= "/modelDriven" extends = "struts-default" >
<action name= "modelDrivenResult" class = "ModelDrivenAction" >
<result>/Hello.jsp</result>
</action>
</ package >
|
然后添加处理数据的action,这里使用ModelDriven的方式。该action继承ModelDriven接口,实现getModel()方法,方法只返回一个模型对象,默认转换Object。只要改模型对象提供的方法和提交数据的name属性对应,struts2就能自动把数据赋给模型对象,最后对象提供各种get方法把数据存放在值栈,传递到Hello.jsp。
处理的action,返回模型对象Gangster。
public class ModelDrivenAction extends ActionSupport implements ModelDriven {
public String execute() throws Exception {
return SUCCESS;
}
public Object getModel() {
return new Gangster();
}
}
|
模型类
public class Gangster implements Serializable {
private String name;
private int age;
private String description;
private boolean bustedBefore;
public int getAge() {
return age;
}
public void setAge( int age) {
this .age = age;
}
public boolean isBustedBefore() {
return bustedBefore;
}
public void setBustedBefore( boolean bustedBefore) {
this .bustedBefore = bustedBefore;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this .description = description;
}
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
}
|
最后Hello.jsp中可以使用<s:property value=".."/>取值,value直接使用相应的age,name等。而action虽然提供的getModel()方法,但因为转为了Object,而Object不能提供取值的方法,所以无法使用value="model.xxx"来取值。
转载于:https://www.cnblogs.com/lechance/p/4373288.html
Structs2 ModelDriven使用方法介绍相关推荐
- webview 加载php页面内容,WebView加载优化的方法介绍
本篇文章给大家带来的内容是关于WebView加载优化的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. WebView加载优化 当WebView的使用频率变得频繁的时候,对于其 ...
- LoadRunner设置检查点的几种方法介绍
LoadRunner设置检查点的几种方法介绍 发布时间: 2011-5-03 11:53 作者: 一米阳光做测试 来源: 51Testing软件测试网采编 字体: 小 中 大 | ...
- python加号换行,Python字符串拼接六种方法介绍
Python字符串拼接的6种方法: 1.加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用"+"来连接两个字符串: prin ...
- 小程序 sha1和服务器有关系吗,微信小程序使用sha1实现密码加密的方法介绍
微信小程序使用sha1实现密码加密的方法介绍,字符串,程序,转换为,详解,函数 微信小程序使用sha1实现密码加密的方法介绍 易采站长站,站长之家为您整理了微信小程序使用sha1实现密码加密的方法介绍 ...
- 360p4虚拟服务器,360安全路由p4c常见的问题以及解决方法介绍
360安全路由p4c在使用的时候会遇到哪些问题呢?360安全路由p4c在使用的时候操作并不是很复杂,但是对于新手用户来说还是有点难度的,接下来的文章中小编将介绍使用这款路由器遇到的五大问题及其姐姐方法 ...
- 如何用计算机弹逆战6,逆战星光弹夹使用方法介绍 轻松玩转星光弹
逆战星光弹夹使用方法介绍 轻松玩转星光弹,今天小编为大家带来的是逆战星光弹夹使用方法介绍,感兴趣的小伙伴快来看看吧. 目前,逆战共有星光弹匣三款.分别为:陷阱加速.空气墙.强固.三款不同的弹匣,用了三 ...
- jquery的ajax()函数传值中文乱码解决方法介绍
jquery的ajax()函数传值中文乱码解决方法介绍 参考文章: (1)jquery的ajax()函数传值中文乱码解决方法介绍 (2)https://www.cnblogs.com/xuxiaosh ...
- html优化网站的方法,利用HTML优化加快网页速度方法介绍
减少web页面下载时间的关键就是设法减小文件大小.当多个页面共用一些成分内容时,就可以考虑将这些公用部分单独分离出来.比如:我们可以将多个HTML页面都用到的脚本程序编写成独立存在的.js文件,然后再 ...
- [转]Linux下pppoe配合Drcom插件上网方法介绍......
Linux下pppoe配合Drcom插件上网方法介绍 近几天在西邮bbs上闲逛,无意间注意到很多人纠结于同一个问题---linux上网,众所周知,linux系统在宿舍上网时比较烦人的一件事,虽然bbs ...
最新文章
- BEncode编码方式以及torrent文件的一些内容
- (转)让你受益终身的10个Word实用技巧
- SQLServer存储引擎——05.索引的结构和分类
- java 兔子生仔问题
- codeforces1167 E. Range Deleting(双指针)
- 查找最接近的元素(信息学奥赛一本通-T1240)
- php如何跟踪调试,PHP使用debug_backtrace方法跟踪调试代码调用详解
- C/C++ 变参函数
- 为什么 MySQL 不推荐使用 join?
- 云计算示范项目_“云计算和大数据”重点专项2018年度项目申报指南
- JS-BOM基本概念
- MATLAB计算自相关函数和互相关函数
- 计算机考研英语需要过六级吗,四六级没过,会影响考研英语吗?
- 对手游渠道商的一些看法
- Python中的可变对象和不可变对象
- 键盘上的按键--键码 对应表
- c语言极限方法求e方法,极限值确定函数式中参数的求解方法.pdf
- Ubuntu20.04安装nvidia显卡驱动并解决重启后黑屏问题
- Go的Negroni库
- OpenCv打开摄像头失败问题处理cap_msmf.cpp (677) MFVideoFormat_RGB24(codec not found)