Struts2学习第一天笔记

Struts2 第一天学习笔记

1、Struts2的概述

1.1 什么是Struts2

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

  • Struts2 是一个基于MVC设计模式的WEB层框架。
    • Struts2的内核相对于Struts1来讲已经发生巨大变化。

2、Struts2入门

###2.1下载Struts2 的开发环境
下载地址:http://https://struts.apache.org/

2.2解压 & 目录结构

2.2.1 目录结构
  • apps :Struts2提供的应用,war文件:web项目打包成war包,直接放入到tomcat可以运行、
  • docs :Struts2的开发文档和API
  • lib :Struts2框架开的jar包
  • src :Struts2源代码

2.3创建web项目,引入jar包

2.3.1 引入jar包
2.3.2 创建jsp页面
<h3><a href="${pageContext.request.contextPath }/hello.action">Struts2的入门</a></h3>

####2.3.3 编写Action的类
public class helloAction {
/**
* 提供一个类
* 类型: public
* 返回值类型: String
* 方法名: execute()
* 无参数
*/
public String execute() {
System.out.println(“Hello Action”);
return null;
}

3、对Action进行配置

3.1 在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="demo01" extends="struts-default" namespace="/">
		<!-- 配置Action -->
		<action name="hello" class="com.struts2.Demo01.helloAction"></action>
	</package>
	
	<!-- 配置Struts2的常量 -->
</struts>

###3.2 配置前端控制器(核心过滤器)
####3.2.1 在web.xml中配置


struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

<filter-mapping>
	<filter-name>struts2</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
3.2.2 改写Action中方法的返回值
3.2.3 改写Struts.xml
<package name="demo01" extends="struts-default" namespace="/">
	<!-- 配置Action -->
	<action name="hello" class="com.struts2.Demo01.helloAction">
		<!--配置页面的跳转  -->
		<result name="success">/demo01/success.jsp</result>
	</action>
</package>
3.2.4 Struts2的执行流程

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

4、Struts2常见配置

4.1 Struts2的配置文件的加载顺序

4.2 Action常见配置

4.2.1 package的配置

在struts.xml中配置

  • package标签成为包:这个包与java中的包的概念是不一样的。包是为了更好的配置action的配置。
    • name :报的名称,只要在一个项目中不同名即可,没有具体的含义
    • extends :继承哪个包,通常为struts-default。
    • namespace :名称空间,与action标签中的name属性共同决定访问路径
      • 带名称的名称空间 ;namespace="/aaa" namespace="/aa/bb"
      • 根名称空间 ;namespace="/"
      • 默认名称空间 ;namespace=""
    • abstract :抽象,用于其他包的继承。
4.2.2 action的配置
  • action标签:配置Action类
    • name :与namespace共同决定访问路径
    • class :Action类的全路径
    • method :执行Action中的哪个方法的方法名称,默认值是execute
    • converter :用于设置类型转换器
4.2.3 Struts2的常量的配置

Struts2的框架中,提供了非常多的常量

  • 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中进行修改

      • 在src目录下创建struts.properties配置文件进行配置 key = value
    • web.xml中进行修改

        <!--在<filter>标签中配置-->
        <!-- 配置常量 -->
      	<init-param>
      		<param-name>struts.action.extension</param-name>
      		<param-value>yxz</param-value>
      	</init-param>
      
4.2.4 include的配置

用于在一个配置文件中引入其他配置文件

5、Action的访问

5.1 Action的写法

5.1.1 Action类是POJO的类
  • 普通的java类(没继承谁,也没实现谁的那种)
5.1.2 Action类实现一个Action的接口
  • 实现接口的这种方式提供了五个常量(五个逻辑视图的名称)
    • SUCCESS :成功
    • ERROR :出错
    • LOGIN :登录出错的跳转
    • INPUT :表单校验的时候出错(必须这么写)
    • NONE :不跳转
5.1.3 Action类继承ActionSupport类
  • 推荐使用ActionSupport方法
    • ActionSupport中提供了数据校验,国际化等一系列的操作的方法

5.2 Action的访问

5.2.1通过method设置
<package name="demo01" extends="struts-default" namespace="/">
	<!-- 配置Action -->
	<action name="userFind" class="com.struts2.Demo02.UserAction" method="find"></action>
	<action name="userUpdate" class="com.struts2.Demo02.UserAction" method="update"></action>
	<action name="userDelete" class="com.struts2.Demo02.UserAction" method="delete"></action>
	<action name="userAdd" class="com.struts2.Demo02.UserAction" method="add"></action>
</package>
5.2.2通过通配符的方式进行配置
<!-- 通配符的方式  -->
<action name="Product_*" class="com.struts2.Demo02.ProductAction" method="{1}"></action>
5.2.3动态方法访问
<!-- 开启动态方法访问(Struts2默认是关闭的) -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
//=============================================
<!-- 动态方法访问的方式 -->
<action name="customer" class="com.struts2.Demo02.CustomerAction"></action>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值