Struts2:HelloWord笔记
在 struts.xml 配置文件中:
<!-- package: 包。struts2 用它来组织模块。
name 属性:必须,用于其他的包引用当前的包.
extends 属性:当前包继承哪个包。继承,即可以继承其中的所有的配置。通常情况下继承 struts-default ,这个包在 struts-default.xml 文件中定义。
namespace 属性:可选。如果没有给出,则默认为 / 。若 namespace 有一个非默认值,则要想调用这个包里的 Action,就必须把这个属性所定义的命名空间添加到有关的 URI 字符串里。例如: http://localhost:8080/contextPath/namespace/actionName.action-->
<package name="helloWorld" extends="struts-default">
<!-- 配置一个 action:一个struts2 的请求就是一个 action
name:对应一个 Struts2 的请求的名字(或对应一个 servletPath,但去除 / 和 扩展名),但不包含扩展名。
class:的默认值为:com.opensymphony.xwork2.ActionSupport
method:的默认值为:execute
result:结果-->
<action name="input" class="com.opensymphony.xwork2.ActionSupport" method="execute">
<!--result:结果。表示 action 方法执行后可能返回一个结果。所以一个 action 节点可能会有多个 result 子节点,多个 result 子节点使用 name 来区分。
name:标识一个 result,和 action方法的返回值对应,默认值为 success。
type:表示结果的类型。默认值为 diapatcher(转发到结果)-->
<result name="success" type="dispatcher">/WEB-INF/page/input.jsp</result>
</action>
</package>
关于 Strutts2 请求的扩展名:
在 org.apache.struts2 包下的 default.properties 中配置了 Struts2 应用的一些常量。
配置 Struts 可以受理的请求 的扩展名,在 struts.xml 文件中以常量配置的方式修改 default.properties 所配置的常量。
例如:<constant name="struts.action.extension" value="action,do"></constant>
ActionSupport:
1)、ActionSupport 是默认的 Action 类,若某个 action 节点没有配置 class 属性,则 ActionSupport 即为待执行的 Action 类。 而 execute 方法即为要默认执行的 action 方法。
2)、在手工完成字段验证,显示错误消息,国际化等情况下,推荐继承 ActionSupport 。
result:
result 代表 action 方法执行后,可能去的一个目的地。
一个 action 节点,可以配置多个 result 子节点。
result 的 name 属性值对应值 action方法可能有的一个返回值。
result 一共有两个属性,还有一个是 type:表示结果的响应类型。
--result 的 type 属性值,在struts-default 包的 result-type 节点的 name 属性中定义。
常用的有:
> dispatcher(默认的):转发。同 Servlet 中的转发。
例:<result name="a" type="dispatcher">/a.jsp</result>
> redirect:重定向。
例:<result name="b" type="redirect">/b.jsp</result>
> redirectAction:重定向到一个Action。注意:通过 redirect 也可以便捷的实现 redirectAction 的功能。
例:<result name="c" type="redirectAction">
<param name="actionName">testAction</param>
<param name="namespace">/hnust</param>
</result>
还需要再写一个 packa:
<package name="test" namespace="/hnust" extends="struts-default">
<action name="testAction" class="com.hnust.struts2.action.TestAction">
<result>/success.jsp</result>
</action>
</package>
> chain:转发到一个 Action。注意:不能通过 diapatcher 的方式转发到一个 Action。
例:<result name="d" type="chain">
<param name="actionName">testAction</param>
<param name="namespace">/hnust</param>
</result>