浏览 3176 次
锁定老帖子 主题:struts2
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-05-22  

 

                           Struts2浅谈

Struts2基于struts WebWork的技术基础上的服务于Web的一种MVC框架 Struts 2WebWork为核心 采用拦截器的机制来处理用户的请求 业务逻辑控制器能够与Servlet API完全脱离开 

 

Struts2框架的大概处理流程如下: 

 1、加载类(FilterDispatcher) 

 2、读取配置(struts配置文件中的Action

 3、派发请求(客户端发送请求)  

  4、调用ActionFilterDispatcherstruts配置文件中读取与之相对应的Action )  

  5、启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证)  

  6、处理业务(回调Actionexecute()方法) 

 7、返回响应(通过execute方法将信息返回到FilterDispatcher) 

 8、查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESSERROR,将跳转到哪个jsp页面) 

 9、响应用户(jsp--->客户浏览器端显示) 

 

Struts2优点:

    相比struts1的标签库,struts2是大大加强了,对数据的操作功能很强大
     Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的pojo 

     Struts1Action依赖于Servlet API,比如Actionexecute方法的参数就包括requestresponse对象。Struts2中的Action不再依赖于Servlet API

ActionSupport基类

ActionSupport基类实现了Action等其它一些接口。其中定义了五个标准的返回值 ,当然我们可以自己随意定义返回的名字  

String SUCCESS = "success"; //默认是 SUCCESS 类型  

String NONE = "none";  

String ERROR = "error";  

String INPUT = "input";  

String LOGIN = "login"; 

 

Mvc模型:

Struts2是基于mvc开发模式的,那什么是mvc模式:

 模型(M): Model层实现系统中的业务逻辑,通常可以用JavaBean来实现 

 视图(V):View层用于与用户的交互,通常用JSP来实现 

 控制器(C):Controller层是ModelView之间沟通的桥梁,它分派用户的请求并选择恰当的视图以用于显示 

 

Struts配置:

 

 

1.新建web工程

2.下载struts-2.3.3-all.zip,解压,将里面的相关包copyWEB-INFlib目录下

3.src目录下新建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/dtd/struts-2.0.dtd">

<struts>

</struts>

4.web.xml文件中添加如下代码:

<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>/*</url-pattern>

</filter-mapping>

 

5.运行项目。如若不报错这配置成功可以开始做项目。

注意:

1.刚开始测试时会出现很多问题 那是因为该导入的包没有导入 

commons-fileupload-1.2.2.jar

commons-io-2.0.1.jar

commons-lang3-3.1.jar

commons-logging-1.1.1.jar

freemarker-2.3.19.jar

javassist-3.11.0.GA.jar

ognl-3.0.5.jar

struts2-core-2.3.3.jar

xwork-core-2.3.3.jar

试着将这些包都导入 如果还不行再导入其他包

 

2.报错:The markup in the document following the root element must be well-formed.

检查一下web.xml文件中所有的标签是否都放到<web-app></web-app>里面

 

 

3.struts.xml要求必须在WebRootWEB-INFclasses目录下。我们可以在src下建立   struts.xml文件,在src根目录下建立的文件eclipse都会自动编译到classes目录下,  

      系统运行时解析的是classes目录下的文件而不是src下的文件

 

 

 

4.报错   Could not find action or result

There is no Action mapped for namespace [/] and action name [login] associated  with context path [/Struts2]. - [unknown location]

 

如果struts.xml文件位置没错的话 那就是因为文件的内容有误 仔细检查每个单词 每个字母 肯定能找出错误

 

论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics