Struts2架构思想配置文件
Posted 时间沉淀美好
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2架构思想配置文件相关的知识,希望对你有一定的参考价值。
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>
以上是关于Struts2架构思想配置文件的主要内容,如果未能解决你的问题,请参考以下文章
struts2-环境搭建-访问流程-配置详解-常量配置-类详解