Struts2的配置文件方法小结

网友投稿 208 2023-02-07


Struts2的配置文件方法小结

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 结果类型将控制权转发给应用程序中的指定资源,若需要把控制jcjUiGz权转发给 一个外部资源,则应使用 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 中的他们四个。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:React native ListView 增加顶部下拉刷新和底下点击刷新示例
下一篇:vue项目中应用ueditor自定义上传按钮功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~