struts2学习---中级篇

本文详细介绍了Struts2框架中Action的工作原理,包括Action的匹配顺序、参数接收方式及其应用场景。探讨了三种接收参数的方法:直接属性映射、使用域模型(DomainModel)和模型驱动(ModelDriven)。同时,还涉及了Struts2的中文解决方案及数据校验等内容。

1:action的寻找顺序:

如果有三个action,一个name叫User_Add,一个name是User_*,一个name是*_*,你会发现,当你访问时,这3个action都会匹配.

此,首先匹配最精确的,其次按照代码的顺序匹配带*号的

2:action接收参数:三种方式,参考3,4,5

示例:当你输入url:http://localhost:8080/aaa时,点击页面的一个链接后,

url会变成:http://localhost:8080/aaa/user!add?name=mm&age=8  ,怎么会变成那样的?参考3

3:第一种:在自己的action类中,定义属性name和age,并写好get和set方法。

然后在写action的时候带入参数“login!add?name=1&age=8”即可

4:第二种:使用Domain Model(域模型)接收参数。如图:action类的属性是一个类

浏览器url如图:

但是,如果在用户登陆模块里,有密码确认该选项,域模型就行不通了。

此时:新建类UserDTO,如图:

然后在action里面定义dto属性,此时前台输入的参数就会和dto匹配了,在相应的方法里处理完之后,再生成dto对象生成一个user对象。

如何生成?从dto里面拿出对象,填到实体类user里面

DTO(数据传输对象)的执行过程:首先在action中把dto对象填充好,然后把这个dto整体交到domain中去,【new User(UserDTO dto)】。

何时用?当页面的参数和实体类属性不匹配的时候,有两种接收方式,一是利用属性单独接收,二就是用dto

5:第三种:用ModelDriven(模型驱动)接收参数(不常用,但是隐含了一种重要的思想):

在action类中实现了ModelDriven<User>接口,此时user必须自己new,并且必须有getModel()方法用以返回user

struts2如何将参数传递给user的?

struts2接收到两个参数后,就会去new action,会发现该action实现了一个ModelDriven接口,然后调用getModel方法,返回一个Model是user,拿到user之后就可以setName咯

6:struts2的中文解决办法:用2.0的filter

7:错误页面的反馈

8:简单的数据校验

9:后台向前台的页面传递值

10:<s:property>专门取value stack和stack context中的属性

value stack中的属性如何取?直接写他的名字即可。eg:<s:property value="errors"/>

转载于:https://www.cnblogs.com/m-xy/archive/2013/03/21/2972960.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值