现在的位置: 首页 > 综合 > 正文

struts2.X心得6–动态方法、通配符、常量案例分析 struts2.X心得6–动态方法、通配符、常量案例分析

2018年05月23日 ⁄ 综合 ⁄ 共 3997字 ⁄ 字号 评论关闭
 

struts2.X心得6--动态方法、通配符、常量案例分析

  1. 1.常量、全局视图的案例分析,主要内容就是在配置文件中添加的常量或全局视图标签以及讲struts.xml参数带过去  
  2. 外部引进的配置文件struts-constant.xml  
  3. <?xml version="1.0" encoding="UTF-8"?>  
  4.  <!DOCTYPE struts PUBLIC  
  5.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
  6.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
  7. <struts>  
  8.     <!-- 常用的常量介绍,放在struts.xml中struts标签的最上面 -->  
  9.   
  10.   
  11.     <!--  
  12.         该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。  
  13.         如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。  
  14.     -->  
  15.     <constant name="struts.action.extension" value="action,do"></constant>  
  16.   
  17.     <!--  
  18.         指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker  
  19.         、velocity的输出 ; 默认的是UTF-8,其他字符集会中文乱码  
  20.     -->  
  21.     <constant name="struts.i18n.encoding" value="UTF-8"></constant>  
  22.   
  23.     <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->  
  24.     <constant name="struts.configuration.xml.reload" value="true"></constant>  
  25.   
  26.     <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->  
  27.     <constant name="struts.serve.static.browserCache" value="false" />  
  28.   
  29.     <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->  
  30.     <constant name="struts.devMode" value="true" />  
  31.   
  32.   
  33.     <!-- 默认的视图主题 -->  
  34.     <constant name="struts.ui.theme" value="simple" />  
  35.   
  36.   
  37.     <!-- 同一个项目的相同目录下的配置文件中的包名如果已经被 其中一个配置文件占用,那么其他配置文件则不能再用这个名字-->  
  38.     <package name="admin" namespace="/csdn" extends="struts-default">  
  39.         <action name="login" class="www.csdn.action.LoginAction"  
  40.             method="login">  
  41.             <result>/sc.jsp</result>  
  42.         </action>  
  43.     </package>  
  44.   
  45. </struts>  
  46.   
  47. Struts.xml  
  48. <?xml version="1.0" encoding="UTF-8"?>  
  49.  <!DOCTYPE struts PUBLIC  
  50.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
  51.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
  52. <struts>  
  53.   
  54. <!-- 将外面的xml配置文件包含进来,让struts自动读取 -->  
  55. <include file="struts-constant.xml"/>  
  56.   
  57.   
  58. <package name="user" namespace="/csdn" extends="struts-default">  
  59.     
  60.   <!--  全局的结果集    多个action可以共用这一个结果集中跳转的页面    -->  
  61.   <global-results>  
  62.     <result name="success">/sc.jsp</result>  
  63.   </global-results>  
  64.    
  65.     
  66.   <action name="login_error" class="www.csdn.action.LoginAction" method="login">  
  67.     <!-- 除了可以从页面直接传过来值之外,action中的param标签也可以进行传值 ,但是在相应的action类中有对象的属性即set构造器-->  
  68.     <param name="test">/as....</param>  
  69.     <!--<result>/sc.jsp</result> -->  
  70.   </action>  
  71.   </package>  
  72. </struts>  
  73.   
  74. 2.通配符项目应用案例分析,这里只是简单列出struts.xml文件和以前项目的不同之处,本案例是在project项目(与hibernate整合,本人struts2博客的前几篇有分析项目案例)  
  75. <?xml version="1.0" encoding="UTF-8"?>  
  76. <!DOCTYPE struts PUBLIC  
  77.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
  78.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
  79. <struts>  
  80.   
  81.     <package name="test" namespace="/csdn" extends="struts-default">  
  82.       
  83.         <action name="adminAction_*" class="www.csdn.action.AdminAction"  
  84.             method="{1}">  
  85.             <result name="success" type="redirectAction">adminAction_adminList.action?adminName=${  
  86.                 entity.adminName }</result>  
  87.             <result name="login">/index.jsp</result>  
  88.             <result name="find">/find.jsp</result>  
  89.             <result name="list">/list.jsp</result>  
  90.         </action>  
  91.   
  92.     </package>  
  93.   
  94. </struts>  
  95.   
  96.   
  97. Jsp显示页面的不同之处就是:  
  98. <form  
  99.                 action="${pageContext.request.contextPath}/csdn/adminAction_adminLogin.action"  
  100.                 method="post">  
  101.       分析:以login登录为例,就是以前叫做adminLogin;现在需要改成adminAction_adminLogin;因为struts配置文件中将action标签中的name值改成了adminAction_*;依次类推,改项目的所有form跳转页面的地址和html超链接跳转的地址都要改成adminAction_加以前action的名字。  
  102.   
  103. Action的不同之处:  
  104.     // 登录方法  
  105.     public String adminLogin() {  
  106.         entity = service.login(adminName, adminPassword);  
  107.         if (entity != null) {  
  108.             return SUCCESS;  
  109.         } else {  
  110.             return LOGIN;  
  111.         }  
  112.     }  
  113. 分析:以login登录为例,这里的方法名字现在要统一起来,就是说jsp中的adminAction_adminLogin名字下划线后面的adminLogin要作为action类的方法,增删改查方法都要这么做。  

更多0

抱歉!评论已关闭.