• Struts初步入门(四)


    1.默认Action-深入Struts

    struts.xml 文件:

      

    <struts>

    <package name="default" namespace="/" extends="struts-default">

    <default-action-ref name="index"></default-action-ref>

    <action name="index">
    <result>error.jsp</result>
    </action>

    <action name="*_*_*" method="{2}" class ="com.imooc.{3}.{1}Action">
    <result>/result.jsp</result>
    <result name="add">/{2}.jsp</result>
    <result name="update">/{2}.jsp</result>
    </action>


    </package>
    </struts>
    默认action配置,需要在xml文件中配置:
      <default-action-ref name="index"></default-action-ref>

    <action name="index">
    <result>error.jsp</result>
    </action>
    其中 default-action-ref的name,和action的name 必须相同,同上。

    遇到报错误500如下:HTTP Status 500 - Unable to instantiate Action, com.imooc.Action.HelloWorlsddAction, defined for 'HelloWorlsdd' in namespace '/'com.imooc.Action.HelloWorlsddAction,
    未解决之前,xml文件配置为如下:
      

      <struts>

    
    

         <package name="default"  extends="struts-default" namespace="/">

    
    

             <default-action-ref name="index"></default-action-ref>

    
    

             <action name="index" >

    
    

              <result>/error.jsp</result>

    
    

             </action>

    
    

             <action name="*_*" method="{2}" class="com.imooc.Action.{1}Action">

    
    

              <result>/result.jsp</result>

    
    

              <result name="add">/{2}.jsp</result>

    
    

              <result name="update">/{2}.jsp</result>

    
    

         </action>

     </package>

    
    

    </struts>

    原因为:把包名未写为通配符,解决办法把包名也写成通配符替换就可以了,如下:

    
    
    <struts>

    <package name="default" namespace="/" extends="struts-default">

    <default-action-ref name="index"></default-action-ref>

    <action name="index">
    <result>error.jsp</result>
    </action>

    <action name="*_*_*" method="{2}" class ="com.imooc.{3}.{1}Action">
    <result>/result.jsp</result>
    <result name="add">/{2}.jsp</result>
    <result name="update">/{2}.jsp</result>
    </action>


    </package>
    </struts>
    访问网址:

    2.strut2后缀
    为了改变访问Struts后缀,有三种方式改变:(1)在Struts.xml文件里,<struts></struts>里添加
    <constant name="struts.action.extension" value="do"></constant>,value值可以为"do","html","action"
    (2)在struts.properties里配置,内容如下:
    #指定默认编码集,对于请求参数带有中文的情况应该设置陈GBK或GB2312.默认值UTF-8
    struts.i18n.encoding=GB2312
    
    
    #是否每次HTTP请求到达时,都重新加载国际化资源文件。默认值false
    
    
    struts.i18n.reload=true
    
    
    #但struts.xml改动后,是否重新加载该文件。在开发阶段建议将此属性设置为“true”,提高开发效率。默认值false
    
    
    struts.configuration.xml.reload=true
    
    
    #是否使用Struts2的开发模式,可以获得更多报错信息,便于调试。在开发阶段设置为true。默认值false
    
    
    struts.devMode = true
    
    
    #设置浏览器是否缓存静态页面。开发阶段设置为false,以获得服务器的最新响应。默认值true
    
    
    struts.serve.static.browserCache=true
    
    
    #指定后缀为.action形式的请求可被Struts2处理。可配置多个请求后缀,比如.do、.struts2等,配置时多个后缀名用逗号隔开
    
    
    struts.action.extension=action,do,struts2,
    
    
    #配置服务器运行时的端口号。一般情况下该属性不修改,如果端口号占用则重新分配端口号。默认值80
    
    
    struts.url.http.port = 8080
    (3)在web.xml文件里配置,如下,红色标注(不常用)
    
    
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
    <param-name>struts.action.extension</param-name>
    <param-value>do</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
     
     
     
     
     
  • 相关阅读:
    C++ 实现简单快速排序
    LEETCODE 198. House Robber
    leetcode 174
    GIT 版本的回退
    unorderd_map 自定义键值及哈希函数的重载
    互斥锁 形成死锁实例
    leetcode 300
    LeetCode 62
    LeetCode 122
    SVN提交,强制注释
  • 原文地址:https://www.cnblogs.com/aiyamoer/p/8778391.html
Copyright © 2020-2023  润新知