(一)Struts2 的入门

Struts2 的入门

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互

常见的web层框架:

Struts2、 Struts1、 Webwork、SpringMVC

Web层框架基于前端控制器模型设计

在这里插入图片描述

下载Struts2的开发环境

struts2下载网址:http://struts.apache.org/

解压Struts2开发包

在这里插入图片描述

1、 创建web项目,引入jar包

引入jar包
在这里插入图片描述

2、创建一个JSP页面
<h1>struts2的入门</h1>
<h3><a href="${pageContext.request.contextPath}/hello.action ">struts2的入门</a></h3>
3、编写Action的类
public class HelloAction {
	/*
	 * 提供一个方法
	 * 方法签名是固定的
	 * public 返回 值是String类型 方法名execute,在此方法中不能传递参数
	 * **/
	public  String execute() {
		System.out.println("HelloAction执行了");
		return null;
	}

}
4、对Action进行配置

在src下创建(提供)名称叫做struts.xml的配置文件

<?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>
		<!--struts2为了管理Action的配置,通过包进行管理  -->
		<!--配置struts2的包  -->
		<package name="随便写" extends="struts-default" namespace="/">
					<!--配置Action  -->
				<action name="hello" class="demo1.HelloAction">
				
				</action>
		</package>
</struts>
5、 配置前端控制器(核心过滤器)

在web.xml文件中配置

  <!-- 配置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>
6、改写Action中的方法的返回值

public class HelloAction {
/*
* 提供一个方法
* 方法签名是固定的
* public 返回 值是String类型 方法名execute,在此方法中不能传递参数
* **/
public String execute() {
System.out.println(“HelloAction执行了”);
return “success”;
}
}

7、改写struts.xml

在这里插入图片描述

8、编写success.jsp

Struts2的执行流程:

当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器实现部分功能),执行目标Action,根据Action的返回值,进行页面跳转

XML的提示问题

与hibernate相同

Struts2的配置文件加载顺序
  • default.properties
  • struts-default.xml
  • struts-plugin.xml
  • struts.xml
  • struts.properties
  • web.xml
    注意:后配置的常量的值会覆盖先配置的常量的值
Action的配置
package相关配置

package标签称为包,这个包与Java中的包的概念不一致。包为了更好管理action的配置

package的属性说明
name包的名称,只有在一个项目中不重名即可
extends继承哪个包,通常值为struts-default
namespace名称空间,与标签中的name属性共同决定访问路径。名称空间有三种写法1、带名称的名称空间 :namespace=”/aaa” 2、跟名称空间:namespance=”/”3、默认名称空间:namespace=””
abstract抽象的,用于其他包的继承
action相关配置

action标签配置Action类
action标签的属性:

  • name :与namespace共同决定访问路径
  • class :Action类的全路径
  • method :执行Action中的哪个方法的方法名,默认值execute
  • converter :用于设置类型转换器
Struts2的常量配置

在Struts2的框架中,提供了非常多的常量:(在default.properties)

  • struts.i18n.encoding=UTF-8 ----Struts2中所有的post请求的中文乱码不用处理。
  • struts.action.extension=action, ----Struts2请求的默认的扩展名。默认扩展名是.action或者什么都不写

在Struts2中修改一些常量的值:

  • struts.xml中进行修改
<!-- 常量的配置 -->
<constant name="struts.action.extension" value="action"></constant>
  • struts.properties中进行修改

  • struts.action.extension=action

  • web.xml中进行修改

   	    <!-- 配置struts2的核心过滤器 -->
 <filter>
 		<filter-name>struts2</filter-name>
 		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 		<!-- 修改常量 -->
 		<init-param>
 		<param-name>struts.action.extension</param-name>
 		<param-value>action</param-value>
 		</init-param>
 </filter>
include的配置
<!-- include的配置 -->
<include file="struts/demo1/struts_demo1.xml"></include>
Action的写法
  • Action类是POJO的类
/*
 * Action类是POJO的类
 * **/
public class ActionDemo1 {

	public String execute() {
		System.out.println("ActionDemo1执行了");
		return null;
	}
}
  • Action类实现一个Action的接口
    在这里插入图片描述
  • Action类继承ActionSupport类
    在这里插入图片描述
Action的访问
  • 通过method设置
    在这里插入图片描述

  • 通过通配符的方式进行配置(*****)
    在这里插入图片描述

  • 动态方法访问
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值