下面我来详细讲解"详解Struts2中配置默认Action的方法"的完整攻略。
什么是默认Action
默认Action是Struts2中的一个重要概念。它是在请求URI中不包含action名称时,即使用URL访问Action时可以省略Action名称部分。例如:我们定义了一个名称为"hello"的Action,可以通过"http://localhost:8080/myapp/hello.action"来访问该Action;当我们把默认Action设置为该Action时,也可以通过"http://localhost:8080/myapp/"来访问该Action。
配置默认Action
在Struts2中,想要指定默认Action,需要在struts.xml文件中进行配置。具体方法如下:
1.在struts.xml文件中添加如下的代码块:
<package name="default" extends="struts-default">
<default-action-ref name="欲设置的默认Action名称"/>
<!--action配置-->
</package>
2.在default-action-ref标签中的name属性中输入想要设置为默认Action的Action名称。
举个例子:
这是struts.xml中配置的一个Action:
<package name="user" extends="struts-default">
<action name="addUser" class="com.example.action.UserAction" method="addUser">
<result name="success">/user/success.jsp</result>
<result name="failure">/user/failure.jsp</result>
</action>
</package>
这个Action的名称是addUser。如果将该Action设置为默认Action,只需在struts.xml文件中将default-action-ref标签的name属性设置为“addUser”即可,效果如下:
<package name="default" extends="struts-default">
<default-action-ref name="addUser"/>
<package name="user" extends="struts-default">
<action name="addUser" class="com.example.action.UserAction" method="addUser">
<result name="success">/user/success.jsp</result>
<result name="failure">/user/failure.jsp</result>
</action>
</package>
</package>
这样,当使用"http://localhost:8080/myapp/"访问应用时,就会自动跳转到addUser Action。
示例说明
下面举两个示例说明。
示例一
在struts.xml文件中配置如下的代码块:
<package name="default" extends="struts-default">
<default-action-ref name="index"/>
<package name="user" extends="struts-default">
<action name="addUser" class="com.example.action.UserAction" method="addUser">
<result name="success">/user/success.jsp</result>
<result name="failure">/user/failure.jsp</result>
</action>
<action name="index" class="com.example.action.IndexAction" method="index">
<result name="success">/index.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</package>
上面的配置定义了两个Action,分别为addUser和index。并且把index设置为默认Action。这样,在URL中不加Action名称时,就会跳转到IndexAction。
例如,使用"http://localhost:8080/myapp/"访问应用时,就会自动跳转到IndexAction。
示例二
在struts.xml文件中配置如下的代码块:
<package name="default" extends="struts-default">
<default-action-ref name="list"/>
<package name="product" extends="struts-default">
<action name="addProduct" class="com.example.action.ProductAction" method="addProduct">
<result name="success">/product/success.jsp</result>
<result name="failure">/product/failure.jsp</result>
</action>
<action name="list" class="com.example.action.ProductAction" method="list">
<result name="success">/product/list.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</package>
上面的配置定义了两个Action,分别为addProduct和list,并把list设置为默认Action。这样,使用"http://localhost:8080/myapp/"访问应用时就会自动跳转到list Action。
注意,list的方法添加了一个result名称为error的返回码。当list方法执行出错时,会返回到/error.jsp页面。
以上就是配置默认Action的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Struts2中配置默认Action的方法 - Python技术站