Struts2 url介绍和 Action类可以三种实现方式

痛定思痛。 2022-06-06 00:53 218阅读 0赞

Struts2 url介绍和 Action类可以三种实现方式

url大体的分类:

1、一般的方式
2、带有特殊符号的方式: _ !

下面是示例代码:

1. struts.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4. "http://struts.apache.org/dtds/struts-2.3.dtd">
  5. <struts>
  6. <!-- 常量:实现动态的方法的调用 -->
  7. <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
  8. <!-- 一般形式的url -->
  9. <package name="user" extends="struts-default">
  10. <action name="insert" class="cn.sz.action.UserAction">
  11. <result>/index.jsp</result>
  12. </action>
  13. <!--这里可以指定调用哪一个方法 -->
  14. <action name="login" class="cn.sz.action.LoginAction" method="login">
  15. <result>/index.jsp</result>
  16. </action>
  17. </package>
  18. <!-- 一般形式的url,这里使用命名空间 -->
  19. <package name="orders" extends="struts-default" namespace="/orders">
  20. <action name="add" class="cn.sz.action.OrdersAction">
  21. <result>/index.jsp</result>
  22. </action>
  23. </package>
  24. <!-- 特殊形式url(动态调用方法) -->
  25. <package name="dept" extends="struts-default" namespace="/dept">
  26. <!-- {1}表示第一个*的内容,{2}表示等*的内容,{0}表示全部的内容 -->
  27. <action name="*_*" class="cn.sz.action.{1}Action" method="{2}">
  28. <result>/{0}index.jsp</result>
  29. </action>
  30. </package>
  31. <package name="good" extends="struts-default" namespace="/good">
  32. <action name="good_*" class="cn.sz.action.GoodAction" method="{1}">
  33. <!-- <result name="update">/jsp/good/update.jsp</result>
  34. <result name="search">/jsp/good/search.jsp</result>
  35. <result name="insert">/jsp/good/delete.jsp</result> -->
  36. <!-- 上面的写法可以替换为如下 -->
  37. <result name="{1}">/jsp/good/{1}.jsp</result>
  38. </action>
  39. </package>
  40. <!-- 带 ! 动态方法调用需要配置上面的常量 -->
  41. <package name="person" extends="struts-default" namespace="/person">
  42. <action name="person" class="cn.sz.action.PersonAction">
  43. <result name="add">/jsp/person/add.jsp</result>
  44. </action>
  45. </package>
  46. </struts>

2.访问的页面index.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title></title>
  8. </head>
  9. <body>
  10. <h1>Struts2 url测试页面</h1>
  11. <a href="insert.action">一般形式(继承ActionSupport)</a>
  12. <br />
  13. <a href="login.action">一般形式二(自定义普通类Action)</a>
  14. <br />
  15. <a href="orders/add.action">一般形式三(实现Action接口)</a>
  16. <br />
  17. <a href="dept/Dept_add.action">特殊形式(*_*形式Action)</a>
  18. <br />
  19. <a href="good/good_add.action">特殊形式(xxx_*形式Action)</a>
  20. <br />
  21. <a href="person/person!add.action">特殊形式(xxx!*形式Action)</a>
  22. <br />
  23. </body>
  24. </html>

Action类可以有三种实现方式:继承ActionSupport类,实现Action接口,一个普通类

1.继承ActionSupport类

  1. package cn.sz.action;
  2. import com.opensymphony.xwork2.ActionSupport;
  3. public class UserAction extends ActionSupport {
  4. private static final long serialVersionUID = 1L;
  5. public String execute() {
  6. return SUCCESS;
  7. }
  8. }

2.实现Action接口

  1. package cn.sz.action;
  2. import com.opensymphony.xwork2.Action;
  3. public class OrdersAction implements Action {
  4. @Override
  5. public String execute() throws Exception {
  6. return SUCCESS;
  7. }
  8. }

3.一个普通类

  1. package cn.sz.action;
  2. public class GoodAction {
  3. public String add() {
  4. return "add";
  5. }
  6. public String delete() {
  7. return "delete";
  8. }
  9. }

补充知识:

我们可以在Action中指定跳转的页面(动态指定结果集),如下代码:

flag设置我们要跳转的页面地址。

Action类:

  1. package cn.sz.action;
  2. public class LogAction {
  3. private String flag;
  4. public String getFlag() {
  5. return flag;
  6. }
  7. public void setFlag(String flag) {
  8. this.flag = flag;
  9. }
  10. public String insert() {
  11. if (true) {
  12. this.flag = "/main.jsp";
  13. return "main";
  14. } else {
  15. return "insert";
  16. }
  17. }
  18. }

struts.xml 配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4. "http://struts.apache.org/dtds/struts-2.3.dtd">
  5. <struts>
  6. <package name="login" extends="struts-default" namespace="/login">
  7. <action name="log" class="cn.sz.action.LogAction" method="insert">
  8. <result name="insert">/jsp/admin/index.jsp</result>
  9. <result name="main">${flag}</result>
  10. </action>
  11. </package>
  12. </struts>

发表评论

表情:
评论列表 (有 0 条评论,218人围观)

还没有评论,来说两句吧...

相关阅读