zoukankan      html  css  js  c++  java
  • Struts2的核心配置文件

    Struts2的详细配置:

       配置的是struts2的核心配置文件:,在struts2的核心配置文件中主要有三个标签需要进行配置:package,action,result。

      1. 配置package标签

        package标签类似于代码包,用于区别不同的action,要配置action,必须首先写package标签,在package里面才能配置action。package标签主要有如下三个属性:

      >>> name属性:

        name的属性值跟功能本身是没有没有关系的,在Struts2的核心配置文件中可以写多个package标签,而name标签是用于区分这些package的,因此name属性值在package中的值是不能相同的。

      >>> extends属性:

        extends属性在package的中,这个属性的值是固定的,也就是extends的值只能是struts-default。在核心配置文件中只有配置了extends="struts-default",才能使在package里面配置的类具有action功能。

      >>> namespace属性:

        namespace属性值的主要的作用是和action标签里面的name属性值构成访问路径,如下:  

    1 <package name="one" extends="struts-default" namespace="/test">
    2     <action name="oneStruts" class="cn.geore.action.OneAction">
    3         <result name="first">/index.jsp</result>
    4     </action>
    5 </package>

    那么访问路径为:

      2. 配置action属性:

         action标签的主要的作用是配置Action类的访问路径,它主要有如下三个属性:

        >>>. name属性:

          name属性值的主要的作用是和package标签里面的namespace属性值构成访问路径;在package标签中是可以存在多个action标签的,但是对于这些action标签,有一个要求,就是action标签的name属性的值不能相同。

        >>>. class属性:

          class属性的作用是配置Action类的全路径,用于在访问的时候,能找到这个Action类。

        >>>. method属性:

           method的属性默认值是execute()方法,因此执行的Action时候,默认调用的就是Action类的execute()方法,如果在Action类中还存在add()或者update()方法的话,那么就需要配置method属性值,来使在执行Action类的时候调用指定的方法。

          如下代码,如果我想调用add方法的话:

     1 public class OneAction {
     2     /**
     3      * 在Servlet中每次执行的是service方法,而在Struts2种每次调用执行的方法是execute()
     4      * 因此对于具体的功能只需要卸载execute()中即可
     5      * @return
     6      */
     7     public String execute() {
     8         return "first";
     9     }
    10     
    11     public String add() {
    12         return "add";
    13     }
    14 }

      那么核心配置文件应该如下进行配置:

    1 <package name="one" extends="struts-default" namespace="/test">
    2     <action name="oneStruts" class="cn.geore.action.OneAction">
    3         <result name="first">/index.jsp</result>
    4     </action>
    5         
    6     <action name="twoStruts" class="cn.geore.action.OneAction" method="add">
    7         <result name="add">/add.jsp</result>
    8     </action>
    9 </package>

      运行截图:

      3. 配置result属性:

         result属性是根据调用的方法的返回值,来配置到不同的路径里面去(JSP页面的路径等)

         result的属性主要有两个:

          >>>. name属性:这个属性的值是要和方法的返回值一致,用来在方法调用之后,根据方法的返回值与之进行匹配,如果值一样,那么就跳转到result中包含的路径的页面去

          >>>. type属性:这个属性配置跳转的方式是转发还是重定向,默认是转发操作

      4. Struts2常量的配置:

      主要是用于修改Struts2的默认常量值。如下: 

    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    

      struts.i18n.encoding是一种最常用的常量:这个是获取表单数据的时候,对数据进行编码的处理,而不需要像在Servlet中一样,使用过滤器进行处理了。

      5. Struts2的分模块开发:

        对于在一个项目中,基本上都是多个人共同开发,但是在Struts2种的核心配置文件只有一份,如果多个人操作的是同一个struts.xml,那么难免会出现问题(一个人把自己的上传,把另一个的删了等)。但是如果对Struts2的核心配置文件也按照分模块的思想,也就是说,一个模块的开发员在自己这个模块的包内创建一个xml文件,在整合的时候,将自己的模块的内的struts文件的xml文件引入到struts核心配置文件中。那么就可以很好的解决这种问题,如下:

      one.xml是一个cn/geore/action/OneAction.java类的配置文件,而struts.xml则是struts2的核心配置文件。在分模块开发的时候,开发人员要在自己的模块下写一个自己模块的xml文件,这个位置和名称没有限制。然后在完成之后,在将自己的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="one" extends="struts-default" namespace="/test">
     7         <action name="oneStruts" class="cn.geore.action.OneAction">
     8             <result name="first">/index.jsp</result>
     9         </action>
    10         <action name="twoStruts" class="cn.geore.action.OneAction" method="add">
    11             <result name="add">/add.jsp</result>
    12         </action>
    13     </package>
    14 </struts>

      

    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.i18n.encoding" value="UTF-8"></constant>
    7     <!-- 引入外部的Struts模块的配置文件 -->
    8     <include file="cn/geore/action/one.xml"></include>
    9 </struts>

      进行在核心配置文件中引入xml文件使用include标签,属性值file,填写文件的相对路径。

     

  • 相关阅读:
    js判断正则匹配
    手机号正则匹配
    php获取图片宽高等属性
    百度分享如何自定义分享url和内容?
    nginx 解决400 bad request 的方法(转载)
    php怎么解析utf-8带BOM编码的json数据,php解析json数据返回NULL
    C#求和
    C#索引器
    LeetCode刷题笔记-递归-路径总和
    LeetCode刷题笔记-递归-将有序数组转换为二叉搜索树
  • 原文地址:https://www.cnblogs.com/geore/p/7517976.html
Copyright © 2011-2022 走看看