Struts2-初级配置与使用(1)

来源:互联网 发布:淘宝客户分类管理 编辑:程序博客网 时间:2024/06/11 11:03

Struts2-初级配置与使用
———————
一.系统配置
1.首先是在IDEA中创建项目的时候,要选择Web Application,还要将下面的Struts2勾选,这样会默认帮你下载一下基础jar包
IDEA的选择
选择好之后创建项目,系统会默认帮你在web->WEB-INF->web.xml中填充好配置文件,也就是通过Filter来导入struts2,并且设置为全局,如果是其他项目没有填充的话,需要我们手动配置一下,配置文件如下

<filter>        <filter-name>struts2</filter-name>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>        <!--class里面的内容并不需要你全部打出,你只需要拼写出StrutsPrepareAndExecuteFilter,        系统就会通过提示引导你加载整个路径-->    </filter>    <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>/*</url-pattern>        <!--这里的”/*"代表全局作用的意思-->    </filter-mapping>

web.xml的配置文件配置好了之后,我们需要在src的根目录下面创建一个名为struts.xml的文件,这里的文件名必须为struts,创建好之后,我们需要给它配置一个基本标签头信息,这个信息需要我们去项目里的lib包中:按照路径为:lib->xwork-core-2.3.31.jar(这里也就是找xwork的核心包,版本可能会有不同)->xwork-validator-1.0.3.dtd(这里也是要选择最高版本),如下图所示
struts.xml基本配置
配置好信息之后,就可以开始使用了.
二.基本使用
1.关于请求后缀的修改.struts2默认的请求后缀为.action.而且默认配置里在JSP页面访问动作时可以不写action.
写到这里之前,下来说一下struts2的配置文件加载顺序

  • a、default.properties : struts2-core**.jar org.apache.struts 包 [只看]
  • b、struts-default.xml : struts2-core**.jar [只看]
  • c、struts-plugin.xml :在插件的jar包 [只看]
  • d、struts.xml : 在应用的构建路径顶端。自己定义的Struts配置文件(推荐)
  • f、web.xml:配置过滤器时,指定参数。程序员可以编写(不推荐)
  • 注意:顺序是固定的。后面的配置会覆盖前面的同名配置信息。

这里面修改请求后缀有三种写法,分别是:
(1).在struts.xml中添加语句,这里讲请求后缀改为了do,两个逗号的意思是在写请求时可以省略.do

<constant name="struts.action.extension" value="do,,"/>

(2)在src根目录下创建一个properties类型的文件,名字为struts,也就是struts.properties,里面的配置信息为:

struts.action.extension=do

(3)在web.xml中配置,在filter标签里,在Filter-class标签下面通过创建init-param标签来配置:

  <init-param>       <param-name>struts.action.extension</param-name>       <param-value>do</param-value>   </init-param>

在web.xml中修改请求后缀
2.设置开发者模式
如果使用DevMode开发者模式,会默认重载配置文件为true.当打开它, xml.reload 也会变成true, 并且还会打印 详细的错误信息. 看default.properties.设置方式为:

<constant name="struts.devMode" value="true"/>

3.把默认配置打一个包,其他包来继承,就可以全局设置了
在package标签下有两个标签:
(1)<default-class-ref class=“" method=""/> 这里指的是当你在action标签中没有写class的时候,会让你默认跳转到一个action中,并执行其中的方法
这里可以创建一个类,并且创建一个方法,返回值必须为SUCCESS,然后在指定一个错误页面,这样就避免了执行默认操作的情况

<package name="AllDefault" extends="struts-default">            <!--如果class不写,默认路径是com.opensymphony.xwork2.ActionSupport-->            <!--这个默认路径的默认方法直接返回true,所以如果不写那么result必须是success-->            <!--method如果不写,默认执行execute,并且返回success-->            <!--可以有多个result,因为在action中会有判断,返回true就是success,返回FALSE就是error-->        <default-class-ref class="com.XXX.struts.error.ErrorAction"/>    </package>

这里为当没有指定class,也就是没写class的时候,会将class设置成这个路径
(2)<default-action-ref name="dispatcher" /> 这里指的是当你在JSP页面请求action时候,找不到对应的action,也就是你的action名字写错,为了方便查看,这里可以设置一下到对应的方法里返回页面并提示action名错误

<package name="a" extends="struts-default">        <default-action-ref name="dispatcher" />        <action name="dispatcher" class="com.XXX.struts.error.ErrorAction" method="forgetClass"> <!-- dispatcher -->            <result type="dispatcher">                /errorAction.jsp            </result>        </action>    </package>

这里为当action名错误的时候,会跳转到error文件夹下的ErrorAction类,执行里面的forgetClass方法.
4.关于package

  • name: 必须要有的. 配置 件中要唯 , 个名字
  • extends: 是必须的. 指定 包. 会把 包中的配置内容继承下来. 般需要直接会间接 的继承 个叫做 “ struts-default “的包(该包在在 struts-default.xml 配置 件中 ), 如果 继承该包, 那么 struts2 中的核 功能 法使 .
  • abstract: 是否是抽象包. 没有任何 action 元素的 package 可以声明为抽象包.
  • namespace: 指定名称空间. 般以 “/“ 开头 . 该包中的动作访问 径: namespace+动 作名称 . 如果 namespace=““, 这是默认名称空间和 写该属性是 样的. 但与namespace= “/“ 同
    5.关于命名空间
    这里写图片描述
原创粉丝点击