struts2学习笔记(一)--struts.xml配置文件

struts2学习笔记(一)--struts.xml配置文件

学习sturts2无非就是学习各种配置而已。最重要的就是struts.xml配置文件。

<? xml version="1.0" encoding="UTF-8"  ?>
<! DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"
>

< struts >
    
< include  file ="login.xml"   /> <!-- 将其他的xml文件容纳进来 -->

    
< constant  name ="struts.devMode"  value ="true"   />
    
<!--  开发模式,更改配置文件无需重启服务器。  -->

    
< constant  name ="struts.i18n.encoding"  value ="UTF-8"   />
    
<!--  字符集,页面传递是中文需要使用此配置。解决中文问题。  -->

    
< constant  name ="struts.custom.i18n.resources"  value ="i18n"   />
    
<!--  国际化  -->

    
< constant  name ="struts.i18n.reload"  value ="false"   />
    
<!-- 国际化是否生效 -->

    
< constant  name ="struts.convention.classes.reload"  value ="false"   />
    
<!--  配置Convention插件自动重加载映射 -->

    
< constant  name ="struts.convention.action.packages"  value ="net.shopxx.action"   />
    
<!--
        这个属性用于约定Action 类的根包(这个包是Java 类的包,而不是Struts.xml中配置的<package>节点)
        在一个项目中有这样一系列的Java 包,那么当指定convention的这个属性,Struts
        框架就会在你访问特定的URL时会自动的找到所要的请求的实现类。 当你在浏览器中输入:
        http://localhost:8080/HelloWorld.action
        ,Struts会自动的找到并执行com.ZTest.web.action.HelloWorldAction.java类。
        当你在浏览器中输入: http://localhost:8080/test/aaa.action
        ,Struts会自动的找到并执行com.ZTest.web.action.test.aaaAction.java类。
    
-->

    
< constant  name ="struts.serve.static.browserCache"  value ="false"   />
    
<!-- 是否struts过滤器中提供的静态内容应该被浏览器缓存在头部属性中 -->

    
< constant  name ="struts.objectFactory"  value ="spring"   />
    
<!--  com.opensymphony.xwork2.ObjectFactory接口  -->

    
< constant  name ="struts.multipart.maxSize"  value ="-1"   />
    
<!--  multipart请求信息的最大尺寸(文件上传用)  -->

    
< constant  name ="struts.ui.theme"  value ="simple"   />
    
<!--  默认的UI template主题  -->

    
< constant  name ="struts.action.extension"  value ="action"   />
    
<!--
        用URL扩展名来确定是否这个请求是被用作Struts action,其实也就是设置 action的后缀,例如login.do的'do'字
    
-->

    
< constant  name ="struts.convention.result.path"  value ="/WEB-INF/template/"   />
    
<!--
        设置Convention插件定位视图资源的根路径。默认值为/WEB-INF/content
        这个属性用于约定Action类执行完毕以后返回资源的结果路径 当你在浏览器中输入:xxx/HelloWorld.aciton
        ,Struts会自动的找到并执行com.ZTest.web.action.HelloWorldAction.java类,并放回到WEB-INF/template/HelloWorld.jsp。
    
-->

    
< constant  name ="struts.convention.action.name.separator"
        value
="_"   />
    
<!--
        这个属性是约定当一个Java 类 有多个单词组合成的时候,映射的URL地址的时候访问的格式的分隔符。
        如果不指定这个属性,Struts默认的分隔符是 “-”,例如 HelloWorldAction 则访问的URL
        是Hello-World.action 如果指定这个属性是上面的格式,则是没有分隔符,会按照Java 类名直接映射,例如
        HelloWorldAction 则访问的URL 是HelloWorld.action
    
-->

    
< constant  name ="struts.convention.action.name.lowercase"
        value
="false"   />
    
<!--
        是否将Action类转换成小写当一个类的类名是多个单词组合起来的时候,例如 HelloWolrdAction,如果指定了这个属性,
        则访问的地址必须是: HelloWorld.action ,如果不是指定这个属性则是: helloworld.action
    
-->

    
< constant  name ="struts.convention.default.parent.package"
        value
="default"   />
    
<!--
          这个属性指定的是Strtus.xml中配置的 <package>节点的父节点。
      
-->

    
< constant  name ="struts.freemarker.manager.classname"  value ="net.shopxx.common.FreemarkerManager"   />
    
<!--
        属性指定Struts 2使用的FreeMarker管理器。该属性的默认值是
        org.apache.struts2.views.freemarker.FreemarkerManager,这是Struts
        2内建的FreeMarker管理器。
        struts.freemarker.wrapper.altMap该属性只支持true和false两个属性值,默认值是true。通常无需修改该属性值。
    
-->

    
<!-- 访问http://localhost:8080/工程名/hello_struts(既可以访问根目录下得Hello.jsp) -->
    
< package  name ="front"  extends ="struts-default"  namespace ="/" >
        
< default-action-ref  name ="errorPage404Action"   /> <!--  默认的action  -->
        
< action  name ="errorPage404Action" >
            
< result  type ="redirect" > /html/error_page_404.html </ result >
        
</ action >
        
        
< global-results > <!--  全局的result,只使用与此packeage中的所有action  -->
            
< result  name ="mainpage" > /main.jsp </ result >
        
</ global-results >
        
        
< action  name ="index"  class ="com.bjsxt.struts2.front.action.IndexAction1" >
            
<!--
                配置了class程序会访问自己的action中的execute方法返回String,如return success
            
-->
            
< result  name ="success" > /ActionIntroduction.jsp </ result >
        
</ action >
    
</ package >

    
< package  name ="user"  extends ="struts-default"  namespace ="/user" >
        
< action  name ="userAdd"  class ="com.bjsxt.struts2.user.action.UserAction"
            method
="add" > <!-- 加入了method="add"所以会访问UserAction中的add方法(这种方法不建议使用,忘了吧!) -->
            
< result > /user_add_success.jsp </ result >
            
<!--
                页面调用<a href="<%=context
                %>/user/userAdd">添加用户</a>【这样会访问】namespace="/user",action名称为name="userAdd"的action中add方法
            
-->
        
</ action >
        
< action  name ="user"  class ="com.bjsxt.struts2.user.action.UserAction" >
            
<!--
                建议使用的方法在这里,这样配置需要使用的调用发放是(动态调用DMI)
            
-->
            
< result > /user_add_success.jsp </ result >
            
<!--
                页面调用<a href="<%=context
                %>/user/user!add">添加用户</a>【这样会访问】namespace="/user",action名称为name="user"的action中add方法
            
-->
            
<!-- 用于一个action中多个方法对应返回同一个页面,返回不同页面需要配置多个result -->
        
</ action >
    
</ package >

    
< package  name ="actions"  extends ="struts-default"  namespace ="/actions" >
        
< action  name ="Student*"  class ="com.bjsxt.struts2.action.StudentAction"
            method
="{1}" >
            
< result > /Student{1}_success.jsp </ result >
            
<!--
                通配符的使用;jsp中有两个访问连接 <a href="<%=context
                %>/actions/Studentadd">添加学生</a> <a href="<%=context
                %>/actions/Studentdelete">删除学生</a>
                *和{1}就是填充add和delete后所访问action中的方法与jsp 【action中一定会有两个方法一个add一个delete】
            
-->
            
<!-- 用于一个action中多个方法,返回不同页面。只需配置一个带有通配符的result【约定优于配置】 -->
        
</ action >
        
< action  name ="*_*"  class ="com.bjsxt.struts2.action.{1}Action"
            method
="{2}" > <!-- 第一个*对应{1};第二个*对应{2} -->
            
< result > /{1}_{2}_success.jsp </ result >
            
<!--  {0}_success.jsp  -->
        
</ action >
        
<!-- 用于多个action中多个方法,返回不同页面。只需配置一个带有通配符的result【约定优于配置】 -->
    
</ package >

    
< package  name ="default"  namespace ="/"  extends ="struts-default" >
        
< default-action-ref  name ="index" ></ default-action-ref >
        
<!-- 默认的action配置 -->
        
< action  name ="index" >
            
< result > /default.jsp </ result >
        
</ action >
    
</ package >

</ struts >
如果使用struts2的convertion plugin约束,可以完全不用配置action

你可能感兴趣的:(struts2学习笔记(一)--struts.xml配置文件)