博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2的配置文件的配置struts.xml
阅读量:6241 次
发布时间:2019-06-22

本文共 3405 字,大约阅读时间需要 11 分钟。

    在学习struts的时候,我们一定要掌握struts2的工作原理。

仅仅有当我们明白了在struts2框架的内部架构的实现过程。在配置整个struts 的框架时。能够非常好的进行逻辑上的配置。接下来我就先简单的解说下struts2的框架工作原理:

一、struts2的工作原理

1、client初始化一个指向Servlet容器(比如Tomcat)的请求;

2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其它框架的集成非常有帮助,比如:SiteMesh Plugin);

3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否须要调用某个Action;

4、假设ActionMapper决定须要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy。

5、ActionProxy通过ConfigurationManager询问框架的配置文件,找到须要调用的Action类;

6、ActionProxy创建一个ActionInvocation的实例。

7、ActionInvocation实例使用命名模式来调用。在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

8、一旦Action运行完成,ActionInvocation负责依据struts.xml中的配置找到相应的返回结果。

返回结果一般是(但不总是。也可能是另外的一个Action链)一个须要被表示的JSP或者FreeMarker的模版。在表示的过程中能够使用Struts2框架中继承的标签。在这个过程中须要涉及到ActionMapper。

二、部署一个struts2项目的一般步骤

    1)在Myeclipse中创建一个web项目,并将struts2须要的jar包导入进项目中,例如以下图

    2)在项目中的web.xml中进行配置struts2的框架,在web.xml中须要包括在<filter></filter>,在该节点下能够包括<filter-name>和<filter-mapin

xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> </web-app>

  3)编写Action类

   4)创建好了Action类中要对action进行配置struts.xml,注意该配置文件的位置要在src的根文件夹下

    5)创建jsp的文件,进行測试

三、struts.xml的配置初探

先来看看struts的基本配置的大概情况

/success.jsp
/{1}.jsp
从上面的代码中能够看出,xml中包括的再根节点下<struts></struts>下。在实际项目中的编写时,头部信息须要更改,那么我们给以在导入的jar中的jar包中进行获取

在struts-core-2.2.1.1.jar包下的struts2.0.dtd中进行获取。

四、struts.xml中的package的配置

看着前面的代码能够非常清晰的看到package的属性

属性有:

1.     name:逻辑上的包名

2.     namespace:命名空间。用来区分允许struts下的同样action(注意是一种逻辑上的的路径)

3.     extends: 继承某个配置文件

4.     abstract

详细使用过程中要注意。有与命名空间的命名,我们要在相应的过程中加上相应的命名空间的路径,比如:

<s:form action="db/login.action" method="post">

此代码说明的就是将会去调用db命名空间下的login相应的action

还须要注意的是:

<result>标签的下的是物理路径(绝对路径),即指在项目中的实际位置,代码例如以下

    <result name="success">/login/error.jsp</result>

五、struts.xml中的action的配置

六、struts.xml中的result的配置

     对于action的配置我这里面仅仅是简单的概括,详细非常多细节性的东西我将专门写一篇博客,主要解说的动态的对action进行配置

属性有:

1.     name:Action类的映射名称

2.     class:Action类的完整路径

3.     method:默认使用的execute()方法,假设要自己定义触发方法,须要使用method自己定义

七、struts.xml配置过程中的注意信息

     在实际开发的项目中,我们可能须要配置非常多的action,有时候为了便于我们的分类,我们一般须要创建不同包下的struts-user.xml文件,只是终于我们的这些配置都是要导入进我们的struts.xml文件里。使用的标签和jsp编程中<include>

struts.xml

xml version="1.0" encoding="UTF-8"?

> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <include file="struts-user.xml"></include> </struts>

struts-user.xml
/login/success.jsp
/login/error.jsp
/login/error.jsp
/login/success.jsp
你可能感兴趣的文章
使用ffmpeg将录屏文件转换成gif
查看>>
作业七 总结
查看>>
Oracle的静默安装 升级和卸载 参考规范
查看>>
高效存储过程分页
查看>>
电脑用U盘启动
查看>>
Web漏洞扫描
查看>>
使用xtrabackup做数据库的增量备份
查看>>
“程序已停止工作”问题的解决方法,停止解决方法
查看>>
[c++] 幂法求特征向量
查看>>
WEB项目(B/S系统)打包安装(总结篇)
查看>>
Cartographer源码阅读(8):imu_tracker
查看>>
U盘,移动硬盘显示显示需要格式化怎么修复
查看>>
JVM基础和调优(一)
查看>>
ICommand in Silverlight
查看>>
复选框、单选按钮、下拉列表的定义
查看>>
webdynpro的select_option示例
查看>>
img src 使用 base64 图片数据
查看>>
MapReduce计算每年最高温度
查看>>
Ruby快速入门
查看>>
UVA 12118 Inspector's Dilemma(连通性,欧拉路径,构造)
查看>>