您的位置:首页 > 编程语言 > Java开发

Struts2架构思想、配置文件

2016-05-02 23:01 351 查看
struts的核心在于拦截器的机制,采用拦截器来处理业务逻辑,使得侵入性比较厉害的servlet光芒暗淡。我们来看看struts2的核心思想图解



show my code.

先来第一个.action,为了能让我们知道action确实执行了我们选择了在控制台打印一句hehe。这里作为我们struts2的业务逻辑处理模块,我们还需要为它配置struts.xml(自定义的配置文件)

package cn.canyugan.action;

public class HelloAction
{
public String execute()
{
System.out.println("hehe");
return "success";
}
}


来看看配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<!--
name:给包起名防重名
namespace:给包增加一层或多层目录
extends: 继承一个其他包,目的是引入其他包的配置
abstract: 声明包是抽象的.意思就是让别的包来继承,声明为抽象的包中不能含有Action配置
-->
<!-- 常量包 -->
<package name="hello" namespace="/caorui" extends="struts-default" abstract="true/false">
<!--
name:为action类加上标识 访问时输入name就可以找到action
class:action完整类名
method:处理的方法
-->
<action name="HelloAction" class="cn.canyugan.action.HelloAction" method="execute">
<!-- name:返回结果的标识 找到结果路径
type:可以决定跳转到结果的方式	 转发,重定向
-->
<result name="success" type="dispatcher">/index.jsp</result>
</action>
</package>
</struts>


配置到这是不是认为已经大功告成了呢?运行一下看看控制台,什么也没有,明显不科学嘛。我们需要了解,任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。 通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispatcher将会加载Struts2框架。
因为Struts2将核心控制器设计成Filter,而不是一个普通Servlet。故为了让Web应用加载FilterDispatcher,只需要在web.xml文件中配置FilterDispatcher即可。 所以我们再来配置一下web.xml.


<!-- 重要: 配置struts2的核心过滤器 -->
<!-- 注意: 配置struts2过滤器要放置到其他过滤器后面.保证其他过滤器可以执行 -->
<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>


到此为止,我们大功告成!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: