Struts2 配置文件小结

每次写的博文都被管理员都被移出首页,好气!还希望有哪位大神可以指点迷津……

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 中的他们四个。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小樱的经验随笔

如何在命令长度受限的情况下成功get到webshell(函数参数受限突破、mysql的骚操作)

还记得上篇文章记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门),我们讲到了一些PHP的一些如何巧妙地绕过数字和字母受限的技巧,今天...

1732
来自专栏python3

python 文件操作

新建一个txt文件,内容是《Yesterday When I Was Young》一首歌的歌词

2022
来自专栏CodingToDie

Python学习(九):错误再多 我也要改正

当遇到错误的时候,有时我们并不想终止程序运行,遇到某些错误,我们想给用户一个友好的提示,告诉用户为什么出错,这也是必要的。

3716
来自专栏前端那些事

Express4.x API (二):Request (译)

最近学习express想要系统的过一遍API,www.expressjs.com是express英文官网(进入www.epxressjs.com.cn发现也是只...

21711
来自专栏北京马哥教育

记一次调试python内存泄露的问题

这两天由于公司需要, 自己编写了一个用于接收dicom文件(医学图像文件)的server. 经过各种coding-debuging-coding-debugi...

7827
来自专栏安恒网络空间安全讲武堂

堆学习入门

借助hitcon training的题目对三种堆的利用方法进行了一个系统的学习,刚入坑的堆小白们可以一起学习一下。题目链接:https://github.com...

1442
来自专栏Python小屋

Python选择结构注意事项

以百分制成绩转换为字母等级成绩为例,简单介绍一下Python选择结构需要注意的事项。

1623
来自专栏沈唁志

如何优化PHP性能呢?PHP性能优化总结

2803
来自专栏信安之路

how2heap总结-上

"how2heap"是shellphish团队在Github上开源的堆漏洞系列教程. 我这段时间一直在学习堆漏洞利用方面的知识,看了这些利用技巧以后感觉受益匪浅...

1310
来自专栏大内老A

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[下篇]

WCF客户端和服务端的框架体系相互协作,使得开发人员可以按照我们熟悉的方式进行异常的处理:在服务操作执行过程中抛出异常(FaultException),在调用服...

2039

扫码关注云+社区

领取腾讯云代金券