一篇文章解释struts常用功能

来源:互联网 发布:读书笔记本软件 编辑:程序博客网 时间:2024/06/11 09:31

一、什么是框架?

来源于建筑行业,如果建筑一个茅草屋,不需要框架,如果建造一个几个亿的摩天大楼,就需要框架。

小系统用框架浪费人力,中大型系统用框架。

软件中的框架,是一种半成品。实现了一些基础功能的软件。

我们项目开发需要在框架的基础上进行,因为框架已经实现了一些功能,这样就可以提高开发效率!

二、struts2框架介绍

Struts1:是最早的一种基于mvc模式的框架。

Struts2:是在Struts1的基础上,融合了xwork的功能

也可以说,Struts2 = struts1  +  xwork。

Struts2框架预先实现了一些功能:

1. 请求数据自动封装

2. 文件上传的功能

3. 对国际化功能的简化

4. 数据效验功能

……………….

三、Struts2开发流程

版本: 2.3.x

3.1引入jar文件

1、commons-fileupload-1.2.2.jar【文件上传相关包】

2、commons-io-2.0.1.jar【处理IO的一些工具类包

3、struts2-core-2.3.4.1.jarstruts2核心功能包】

4、xwork-core-2.3.4.1.jarXwork核心包】

5、ognl-3.0.5.jarOgnl表达式功能支持表】

6、commons-lang3-3.1.jarstrutsjava.lang包的扩展,是struts内部的实现,和我们开发没有关系,但必须要】

7、freemarker-2.3.19.jarstruts的标签模板库jar文件】

8、javassist-3.11.0.GA.jarstruts对字节码的处理相关jar我们一般情况下用JDK自带的字节码处理,但Struts自带了,在新版本里才提供的,2.1就不需要

3.2配置web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://xmlns.jcp.org/xml/ns/javaee"    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"    id="WebApp_ID" version="3.1">    <display-name>hellostruts2</display-name>    <!-- 其他拦截器,其他拦截器要放在struts上面,要不然无效,因为struts拦截了所有请求 -->    <filter>        <filter-name>struts</filter-name>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>struts</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping></web-app>

web.xml的作用见:http://blog.csdn.net/zengmingen/article/details/50534678

Tomcat启动-à 加载自身web.xml---à加载所有项目的web.xml,通过在项目的web.xml中引入过滤器,

-àStruts的核心功能的初始化,通过过滤器完成 à filter init/启动执行,doFilter/访问执行,destroy

struts2-core-2.3.4.1.jar 中的StrutsPrepareAndExecuteFilter  即为核心过滤器

注意:使用的struts的版本不同,核心过滤器类是不一样的!

3.3开发Action

1.action类,也叫做动作类一般继承ActionSupport类,即处理请求的类(struts中的action类取代之前的servlet)

2.action中的业务方法,处理具体的请求

-à必须返回String

à方法不能有参数

-à异常可有可无

public class HelloAction extends ActionSupport {// 处理请求public String execute() throws Exception {}}

3.4配置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>    <!--    package 定义一个包,包作用:管理action,通常一个业务模块用一个包        name包名不能重复         extends 当前包继承自哪个包        abstract 表示当前包是否为抽象包,抽象包不能有action的定义,否则运行时报错。            abstract=true:只有当前包被其他包继承时才使用。        namespace 默认"/",是访问路径的一部分。    action 配置请求路径与Action类的映射关系        name 请求路径名称        class 请求处理的action类的全名        method 请求处理方法    result        name action处理方式返回值        type 跳转的结果类型        标签体中指定跳转的页面    -->    <package name="xxxx" extends="struts-default">        <action name="hello" class="com.zengmg.strtus.HelloAction" method="execute">            <result name="success">/success.jsp</result>        </action>    </package></struts>




 








0 0
原创粉丝点击