Java--package,action,result元素

怼烎@ 2023-10-17 22:44 106阅读 0赞
  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. <constant name="struts.devMode" value="true"/>
  7. <package name="p1" extends="struts-default">
  8. <action name="action1" class="com.web.action.Demo1Action">
  9. <!-- resulst元素:配置逻辑结果视图
  10. name属性:结果视图名称。与动作方法的返回值对应,当一致前往指定的jsp
  11. type属性:结果视图类型。不写的时候,有默认值,默认值是dispatcher 转发。
  12. 常用取值:
  13. dispatcher:请求转发 默认值
  14. redirect:重定向
  15. chain:转发到另一个动作
  16. 转发到同包(同名称空间)下的另一个动作
  17. <result name="success" type="chain">action2</result>
  18. 转发到不同包(不同名称空间)下的另一个动作
  19. <result name="success" type="chain">
  20. 使用的是注入的思想,在执行之重定向之前,会先获取这两个参数的值
  21. 调用的就是setNamespace("/n2")和setActionName("action3")
  22. <param name="namespace">/n2</param>
  23. <param name="actionName">action3</param>
  24. </result>
  25. redirectAction:重定向到另一个动作
  26. 重定向到同包(同名称空间)下的另一个动作
  27. <result name="success" type="redirectAction">action2</result>
  28. 重定向不同包(不同名称空间)下的另一个动作
  29. <result name="success" type="redirectAction">
  30. 使用的是注入的思想,在执行之重定向之前,会先获取这两个参数的值
  31. 调用的就是setNamespace("/n2")和setActionName("action3")
  32. <param name="namespace">/n2</param>
  33. <param name="actionName">action3</param>
  34. </result>
  35. -->
  36. <result name="success" type="chain">
  37. <param name="namespace">/n2</param>
  38. <param name="actionName">action3</param>
  39. </result>
  40. </action>
  41. <action name="action2"><!-- 没有给定动作类,默认的是ActionSupport,没有给定动作方法,默认的是execute -->
  42. <result name="success" >
  43. <param name="location">/success.jsp</param>
  44. </result>
  45. </action>
  46. </package>
  47. <package name="p2" extends="struts-default" namespace="/n2">
  48. <action name="action3">
  49. <result name="success" >/success.jsp</result>
  50. </action>
  51. </package>
  52. <!-- 全局结果视图 -->
  53. <package name="myDefault" extends="struts-default" abstract="true">
  54. <!-- 自定义结果类型
  55. 在包中配置的结果视图,是只能当前包和其子包中使用
  56. -->
  57. <result-types>
  58. <result-type name="captcha" class="com.web.result.CAPTCHAResult"></result-type>
  59. </result-types>
  60. <global-results>
  61. <!-- 结果视图的查找顺序,先找当前动作类自己的,如果没有的,再去全局的结果视图中查找 -->
  62. <result name="success" type="captcha">
  63. <param name="width">240</param>
  64. <param name="height">40</param>
  65. </result>
  66. </global-results>
  67. </package>
  68. <!-- 自定义结果类型的配置 -->
  69. <package name="p3" extends="myDefault">
  70. <action name="captchaAction" class="com.web.action.CaptchaAction" >
  71. <!-- 写在action内部的结果视图,是只能当前动作类使用的
  72. <result name="success" type="captcha">
  73. 配置图像的大小
  74. <param name="width">240</param>
  75. <param name="height">40</param>
  76. </result>
  77. -->
  78. </action>
  79. </package>
  80. </struts>

package元素

  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.devMode" value="true"/>
  8. <!--
  9. package元素:是定义一个struts的包,它是把配置文件按照面向对象的思想来管理。分模块开发。
  10. name属性:指定包的名称。注意:包的名称在配置文件中唯一。
  11. extends属性:指定当前包的父包。它是按照面向对象的思想管理的体现。
  12. abstract属性:把包声明为一个抽象包。抽象包就是用来被继承的。只有没有action元素的包,才能被定义为抽象包
  13. namespace属性:名称空间。当指定了名称空间之后,访问路径就变成了:
  14. 访问路径 = 名称空间+动作名称
  15. 当不指定该属性时,该属性有默认值,默认值是""。注意,不是"/"!!!!!!!!
  16. 名称空间的搜索顺序:
  17. 第一步:先去找对应的名称空间
  18. 在指定的名称空间下找到了:就执行第二步。
  19. 在指定的名称空间下没找到:按照名称空间结构向上追溯,一直到根名称空间,只要在任何一级找到了,执行第二步
  20. 第二步:找动作名称
  21. 先在指定的名称空间下,搜索对应的动作名称:找到了就执行动作类的动作方法。
  22. 在指定的名称空间下没找到对应的动作名称:前往默认的名称空间下,找动作名称。注意:它只找动作名称。
  23. -->
  24. <package name="p1" extends="struts-default" namespace="/user">
  25. <!-- <action name="action1" class="com.web.action.Demo1Action" method="saveUser" >
  26. <result name="success">/success.jsp</result>
  27. </action> -->
  28. </package>
  29. <package name="p2" extends="struts-default">
  30. <action name="action2" class="com.web.action.Demo1Action" method="saveUser2" >
  31. <result name="success">/success.jsp</result>
  32. </action>
  33. </package>
  34. </struts>

action元素:

  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. <constant name="struts.devMode" value="true" />
  7. <!-- 开启动态方法调用 -->
  8. <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
  9. <package name="p1" extends="struts-default">
  10. <!-- 修改默认动作类:我们一般不改
  11. <default-class-ref class="你自己的动作类"></default-class-ref> -->
  12. <!-- action元素:是用于定义动作名称,动作类和动作方法的映射。以及当出现不同情况时前往指定的结果视图
  13. name属性:动作的名称。和jsp页面上的请求url中的名称对应起来。注意在此处不能写.action
  14. class属性:指定动作类
  15. method属性:指定要执行的动作方法
  16. -->
  17. <action name="action1" class="com.web.action.Demo1Action" method="hello">
  18. <result name="success">/success.jsp</result>
  19. </action>
  20. <!-- 第三种创建动作类方式的配置 -->
  21. <action name="action3" class="com.web.action.Demo3Action">
  22. <result name="success">/success.jsp</result>
  23. </action>
  24. <!-- 访问默认的动作类和动作方法的配置
  25. 默认的动作类是:ActionSupport的类。它是在struts-default.xml的配置文件中定义着。
  26. -->
  27. <action name="defaultAction">
  28. <result name="success">/success.jsp</result>
  29. </action>
  30. <!-- 动作方法调用的配置
  31. <action name="addUser" class="com.web.action.UserAction" method="addUser">
  32. <result name="success">/addUser.jsp</result>
  33. </action>
  34. <action name="updateUser" class="com.web.action.UserAction" method="updateUser">
  35. <result name="success">/updateUser.jsp</result>
  36. </action>
  37. <action name="deleteUser" class="com.web.action.UserAction" method="deleteUser">
  38. <result name="success">/deleteUser.jsp</result>
  39. </action>
  40. <action name="findUser" class="com.web.action.UserAction" method="findUser">
  41. <result name="success">/findUser.jsp</result>
  42. </action>-->
  43. <!-- 使用通配符,配置动作方法
  44. *表示的是动作的名称,当有和动作名称相匹配的时候可以用{出现的位置}来代替
  45. <action name="*_*" class="com.web.action.{2}Action" method="{1}{2}">
  46. <result name="success">/{1}{2}.jsp</result>
  47. </action>
  48. -->
  49. <!-- 动态方法调用的配置 -->
  50. <action name="user" class="com.web.action.UserAction">
  51. <result name="success">/success.jsp</result>
  52. </action>
  53. </package>
  54. </struts>

result元素:

  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. <constant name="struts.devMode" value="true"/>
  7. <package name="p1" extends="struts-default">
  8. <action name="action1" class="com.web.action.Demo1Action">
  9. <!-- resulst元素:配置逻辑结果视图
  10. name属性:结果视图名称。与动作方法的返回值对应,当一致前往指定的jsp
  11. type属性:结果视图类型。不写的时候,有默认值,默认值是dispatcher 转发。
  12. 常用取值:
  13. dispatcher:请求转发 默认值
  14. redirect:重定向
  15. chain:转发到另一个动作
  16. 转发到同包(同名称空间)下的另一个动作
  17. <result name="success" type="chain">action2</result>
  18. 转发到不同包(不同名称空间)下的另一个动作
  19. <result name="success" type="chain">
  20. 使用的是注入的思想,在执行之重定向之前,会先获取这两个参数的值
  21. 调用的就是setNamespace("/n2")和setActionName("action3")
  22. <param name="namespace">/n2</param>
  23. <param name="actionName">action3</param>
  24. </result>
  25. redirectAction:重定向到另一个动作
  26. 重定向到同包(同名称空间)下的另一个动作
  27. <result name="success" type="redirectAction">action2</result>
  28. 重定向不同包(不同名称空间)下的另一个动作
  29. <result name="success" type="redirectAction">
  30. 使用的是注入的思想,在执行之重定向之前,会先获取这两个参数的值
  31. 调用的就是setNamespace("/n2")和setActionName("action3")
  32. <param name="namespace">/n2</param>
  33. <param name="actionName">action3</param>
  34. </result>
  35. -->
  36. <result name="success" type="chain">
  37. <param name="namespace">/n2</param>
  38. <param name="actionName">action3</param>
  39. </result>
  40. </action>
  41. <action name="action2"><!-- 没有给定动作类,默认的是ActionSupport,没有给定动作方法,默认的是execute -->
  42. <result name="success" >
  43. <param name="location">/success.jsp</param>
  44. </result>
  45. </action>
  46. </package>
  47. <package name="p2" extends="struts-default" namespace="/n2">
  48. <action name="action3">
  49. <result name="success" >/success.jsp</result>
  50. </action>
  51. </package>
  52. <!-- 全局结果视图 -->
  53. <package name="myDefault" extends="struts-default" abstract="true">
  54. <!-- 自定义结果类型
  55. 在包中配置的结果视图,是只能当前包和其子包中使用
  56. -->
  57. <result-types>
  58. <result-type name="captcha" class="com.web.result.CAPTCHAResult"></result-type>
  59. </result-types>
  60. <global-results>
  61. <!-- 结果视图的查找顺序,先找当前动作类自己的,如果没有的,再去全局的结果视图中查找 -->
  62. <result name="success" type="captcha">
  63. <param name="width">240</param>
  64. <param name="height">40</param>
  65. </result>
  66. </global-results>
  67. </package>
  68. <!-- 自定义结果类型的配置 -->
  69. <package name="p3" extends="myDefault">
  70. <action name="captchaAction" class="com.web.action.CaptchaAction" >
  71. <!-- 写在action内部的结果视图,是只能当前动作类使用的
  72. <result name="success" type="captcha">
  73. 配置图像的大小
  74. <param name="width">240</param>
  75. <param name="height">40</param>
  76. </result>
  77. -->
  78. </action>
  79. </package>
  80. </struts>

发表评论

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

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

相关阅读