struts2
java基础学完,肯定是要面临三大框架的学习的,作为初学者,了解三大框架的原理,设计目的是首要任务,只有在把握了框架的设计目的以后,才能有针对性的取学习使用框架,这里就要介绍下strue2框架了。
什么是struts2?
struts2 是一个非常优秀的mvc框架,基于model2 设计模型
由传统struts1和webwork两个经典框架发展而来
strust2 核心功能
(1)允许pojo(plain old java objects)对象 作为action
(2)action的execute 方法不再与servlet api耦合,更易测试
(3)支持更多视图技术(jsp、freemarker、velocity)
(4)基于spring aop思想的拦截器机制,更易扩展
(5)更强大、更易用输入校验功能
struts2 配置文件的 result 节点
result 节点是 action 节点的子节点,他代表着 action 方法执行后可能去的一个目的地;
action 方法名和 action 节点的 method 属性相对应;
每个 action 方法都会返回一个 string 类型的值且一一对应 result 节点的 name 属性,而 result 节点根据 name 属性值决定响应不一样的结果;
result 节点拥有两个属性,name(结果的名字,即 action 方法的返回值,默认为 success) 和 type(响应结果的类型,默认值为 dispatcher)
如上图中圈 1 所, result 节点的值代表着此次 struts2 请求将会去的一个目的地
result 节点的结果类型(type)
dispatcher(转发)
dispatcher 是 struts2 框架的默认结果类型,也是最常用的结果类型,该类型有一个默认的参数 location,一般情况省略,如下两种写法等价:
dispatcher 结果类型将控制权转发给应用程序中的指定资源,若需要把控制权转发给 一个外部资源,则应使用 redirect 结果类型
redirect(重定向)
- redirect 结果类型将把响应重定向到另一个资源,而不是转发给该资源
- redirect 也拥有默认参数 location,同时还有一个 parse 参数,用来表明是否把 location 值视为一个 ognl 表达式来解释,默认值为 true
chain (转发到一个 action)
- 指定 result 结果响应类型为 chain,其可以用来构成一个 action 链,即前一个 action 把控制权转发给后一个 action,而前一个 action 的状态在后一个 action 中依然保存
- chain 可接受的参数有 actionname 和 method,其中 actionname 指定目标 action 的名字,它是默认属性,method 指定目标 action 的方法,默认值为 execute
redirectaction (重定向到一个 action)
- redirectaction 把响应重定向到另一个 action,同时拥有默认参数 actionname
- 重定向到一个 action 可以使用 redirect 简洁的进行实现,但是转发到一个 action 不能使用 dispatcher 实现,如下两种写法等价
通配符映射
struts2 提供通配符映射机制将多个彼此相似的映射关系简化为一个映射关系
通配符映射规则
- 若一个 action 请求找到多个匹配的 action,没有通配符的那个将会获胜
- 若找不到指定的 action,struts2 将会尝试把这个 url 与任何一个包含着通配符的动作匹配
- 被通配符匹配到的 uri 字符串的子串可以利用 {1} {2} 来引用,比如四个 action 分别为
- update-hello、query-hello、delete-hello、save-hello 那么在 struts.xml 文件中的 action
- 的 name 属性则可以为 name = -hello,且在整个 action 节点中可以用 {1} 代表 所占用
- 的字符串,class 中也可以使用 {1} 来代表类名
- {0} 匹配整个 url
- 若 struts2 找到带有通配符的匹配有多个,则按先后顺序进行匹配
如图所示,在第一个 package 中,* 可代表第二个 package 中的他们四个。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://www.cnblogs.com/bgzyy/p/8745513.html