Unmi的Struts2学习笔记(六)

米洗毕,水适量,盖合上,心摇摆,总觉水多了一分或是少了几点,于是重又 加上或倒出少许,其实这丁点份量完全无碍煮出香喷喷的饭来。及至将熟之际, 亦有犹豫,心中默数至少10,如再有不定辄至20,掐火,20对最终质量来说或有 所损。

1. Struts2 的 Action 中可直接用属性来封装请求参数和处理结果,此谓之 属性驱动。也可以像 Struts1 那样使用专门的 ActionForm 来处理请求参数和结 果,只不过 Struts2 用的是一个更单纯的 POJO,这就做模型驱动;此时的 Action 需要实现 ModelDriven 接口,并实现其 getModel() 方法将 Action 与 对应 Model 相关联。

2. 例子说明采用模型驱动的 Action (UserBean 是一个普通 JavaBean,其中 定义了 username 和 password 两个属性):

public class LoginAction implments Action, 

ModelDriven<UserBean>{    UserBean model = new UserBean();    public UserBean getModel(){      return model;    }  }

上面例子使用了泛型,Struts2 的 Action 要使用一个模型不需要在配置文 件中作额外的配置。

3. 请求参数自动封装到模型中是由配置 struts-default.xml 中的 ModelDrivenIntercepter 来完成的。要输出模型中值时用标记 <s:property value="model.username"/>。而倘若写成了<s:property value="username"/>,Struts2 也会作智能处理,要是这个 Action 中未定义 username 属性,并且彩用了模型驱动模式,也会输出模型 model.username 属性 ,就像 Struts1 显示 ActionForm 一样可不写 name 属性。

4. Struts2 的异常处理,基本和 Struts1 一样的思维,都提供了声明式异常 处理方式,在 struts.xml 中配置。Struts2 的 <global-exception- mappings .../>、<exception-mapping .../> 分别与 Struts1 的 <global-exceptions .../>、<exception .../> 对应,作用都是声 明 Action 中出现何种类型的异常,转到对应页面,你的 Action 的 execute() 方法只管 throws Exception 就行,剩下的事框架帮你处理。

5. 异常信息的输出,<s:property value="exception"/> 输出异常对 象本身;<s:property value="exceptionStack"/> 输出异常堆栈信息,这 是 Struts1 没有的功能;<s:property value="exception.message"/> 输 出异常的 message 属性。至于标签输出异常国际化消息,可就要借鉴前面的知识 稍加斟酌一番,其实就是:如 execute() throw new Exception("name.error") ,要输出 name.error 对应消息用 <s:property value="%{getText (exception.message)}"/> 即可,如果找不到 name.error 对应消息,会直接 把 "name.error" 原本输出。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索struts2
, 异常
, action
, struts1
, 模型
, 属性
, struts1和struts2
, 输出
, struts2 3 20
, struts2 0 国际化
, 输出异常
, struts2.0modeldriven
, 输出异常显示设备
struts2 表单 国际化
,以便于您获取更多的相关知识。

时间: 2024-11-10 00:04:17

Unmi的Struts2学习笔记(六)的相关文章

Unmi的Struts2学习笔记

Unmi的Struts2学习笔记(十四) Unmi的Struts2学习笔记(十三) Unmi的Struts2学习笔记(十二) Unmi的Struts2学习笔记(十一) Unmi的Struts2学习笔记(十) Unmi的Struts2学习笔记(九) Unmi的Struts2学习笔记(八) Unmi的Struts2学习笔记(七) Unmi的Struts2学习笔记(六) Unmi的Struts2学习笔记(五) Unmi的Struts2学习笔记(四) Unmi的Struts2学习笔记(三) Unmi的S

Unmi的Struts2学习笔记(二)

记笔记,尤其是在 Blog 里记,实则是浪费时间.让学习.阅读的速度以数量 级的下降,收获时当时掌握的更细,却并不代表着真记得牢.一小段时间不用它 ,同样可以忘得很干净,也就是方便于以后能由此泛起些涟漪,如能抛砖引玉就 更幸运了.入正题: 1. 记得 Struts1 的 struts-config.xml 通常是放在 WEB-INF 目录下的, Struts2 的 struts.xml 却要放到 WEB-INF/classes 下的,傻眼了吧,反正我是 .没看仔细之前,总给我报 There is

Unmi的Struts2学习笔记(一)

Struts 从1.1使用到1.3已有多年,都升成2了,却来了个大变脸,须重新审视 一番了.从头学习,记下笔记,以要点式. 1. Struts2 与 Struts1 似乎没什么血缘关系了,承自于 WebWork,直害 WebWork 不再推出新版本了,原先的 WebWork 使用者只需顺其然,即是水道渠成 :相反 Struts1 的开发经验对于 Struts2 却没有太大的帮助. 2. Struts1 的核心控制器是 ActionServlet,而 Struts2 的核心控制器是 FilterD

Unmi的Struts2学习笔记(十四)

生活中常为一些无伤大体之事优柔寡断,譬如买羽毛球拍是方头的还是圆头的 呢?电子产品是这款好还是那款好呢?拿此又放下,举彼又放下,最后靠概率来 决定.取其一,少段时间内总有些戚戚然,而后全然无所谓.小事无碍,大事可 就会后悔不及,无疑亦会让许多机会径直溜去. 1. 从此开始学习 Struts2 对 Ajax 的支持.这也是 Struts2 新注入的元素 .Struts2 的 Ajax 支持是建立在 Dojo 和 DWR 基础之上的.提供了 Ajax 的输 入检验,表单提交:pub-sub 事件模型

Unmi的Struts2学习笔记(十)

有一日,帮外公翻腾出他箱底的照片进行数字化留存,已是耄耋之年的外公端 详起那些记忆来,看到都是一同革命的热情小伙,不时感慨:唉!好多人都不在 啦! 1. <s:action .../> 可以用来在 JSP 页面直接调用 Action,用 name 指定 Action,executeResult(默认为 false) 指定是否包含那个 Action 转向视 图的内容:executeResult 会把视图的所有内容输出在标签位置. ignoreContextParams(默认为 false),是否

Unmi的Struts2学习笔记(五)

常有这样的梦:不知何来一本似乎是无字天书,而其中的字句却是慢慢地.渐 显可辨.同时现实中的自己完全能察觉这是一个梦,极怕即刻醒来,想多记取那 些天外之语.但总不能如愿,醒来时还留有某些字句痕迹,再过后就全然忘却. 仿佛进入的是一个太虚幻境. 1. 动态 Action:<action ../> 元素的一个前所未有的特性是,name 属性可以用通配符,class 和 method 属性中可以用 name 中的匹配参数,{0}/ {1} 的形式.举两个例子说明: ① <action name=

Unmi的Struts2学习笔记(三)

连续几日熬夜,以致左胸又起闷痛感,何来如此辛苦?不由自忖,人生至今, 印象中从来就没有过安逸与幸福感.常要回避刺疼. 1. WebWork 的核心控制器是 ServletDispatcher,映射到 *.action 的 <url-pattern> 即可.在 WebWork 与 Struts2 的 struts.xml 和 struts.properties 相对应的分别是 xwork.xml 和 webwork.properties,文件 内容几乎一样,只几个关键字的差异. 2. Strut

Unmi的Struts2学习笔记(十三)

柏杨在形容中国人不团结,喜欢窝里斗用了这样的话:每一个中国人都是一条 龙,但是三个中国人加在一起──三条龙加在一起,就成了一条猪.一条虫,甚至 连虫都不如--<丑陋的中国人>.可是他老人家走得走,要是能多有半个月的阳 寿,不知作有何感想. 1. <s:optiontransferselect.../> 正是考虑到通常使用而新加的用于 创建两个下拉框,可以来回移动列表项.有属性设置是否显示 "选定左移"."全 部左移"."选定右移&q

Unmi的Struts2学习笔记(十二)

上有所好,下必甚之.君不见屠宰场的墙头"以三个代表指导我们的屠宰工作 !" 发挥到极致:近来更是"和谐"泛滥,褒贬难分,诸如"创建人水和谐" 等 比比皆是.程序开发更需要务实,任凭天花乱坠都糊弄不了梗直的机器. 1. 初见 Struts2 的表单标签有 tooltip 以及 tooltipConfig 下的 tooltipBgColor 等属性,有一种砰然心动的感,本能的以为例如一个输入框,鼠 标悬停其中便出现一个 JS Tip 层,还可控制这个