Struts2学习总结

Action搜索顺序

1
2
3
4
5
<struts>
<package name="default" namespace="/test">
<action name="myAction" />
</package>
</struts>

访问http://localhost:8080/test/aaa/bbb/ccc/myAction时,先查找ccc命名空间的包下有没有myAction。没有再找到bbb,再找aaa。都找不到myAction。这时找到test命名空间的包下,找到了myAction,搜索结束。如果还是没有找到myAction,则往默认命名空间下找,找不到抛出。

result的type属性

1
2
3
4
5
6
7
8
<struts>
<package name="default" namespace="/test">
<action name="myAction">
<result type="dispatcher">/index.jsp</result>
<result name="error" type="redirect">/index.jsp?username=${username}</result>
</action>
</package>
</struts>

默认情况下是转发(dispatcher)。

  • 重定向是redirect,可以用${username}传递Action中的属性,中文记得使用URLEncoder.encode("中文", "UTF-8")
  • 重定向ActionredirectAction,在result标签下的namespace标签可以指定其他命名空间的Action
  • 查看源码是plainText,中文要在result标签加上<param name="charSet">UTF-8</param>