Struts2介绍搭建与使用

 

 

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的运行原理

1.tomcat启动加载Web.xml,核心控制器 加载并解析struts.xml

2.客户端发出请求到Action,核心控制器 根据后缀名拦截

3.FilterDispatcher根据struts.xml配置文件信息找到指定的Action方法

4.执行相关的业务逻辑后返回字符串

5.根据返回字符串,在 struts.xml的<result>的name属性的值,进行匹配跳转到指定的jsp或重定向到其他Action使用Struts2进行操作

搭建struts2的框架

 

 

 

1.导入jar包

 

2.在web.xml文件中添加StrutsPrepareAndExecuteFilter


<!-- struts begin -->

<filter>

<filter-name>struts2</filter-name> 

<!-- struts的总控制器-->

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<!-- struts2会将后缀名为.action的路径拦截下来 -->

<url-pattern>*.action</url-pattern>

</filter-mapping>

 

在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/dtds/struts-2.0.dtd">

<struts>

<!--

package提供了将多个Action组织为一个模块的方式 package的名字必须是唯一的

package可以扩展 当一个package扩展自 另一个package时

该package会在本身配置的基础上加入扩展的package 的配置

父package必须在子package前配置

name:package名称

extends:继承的父package名称

abstract:设置package的属性为抽象的 抽象的package不能定义action 值true:false

namespace:定义package命名空间 该命名空间影响到url的地址,

例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action -->

<package name="struts2" extends="struts-default">

<!--

Action配置

一个Action可以被多次映射(只要action配置中的name不同)

name:action名称 class:

对应的类的路径

-->

<action name="hello" class="com.mr.action.HelloAction">

<!--

节点配置

name : result名称 和Action中返回的值相同

type : result类型 不写则选用superpackage的type

struts-default.xml中的默认为dispatcher

dispatcher :转发

redirect :重定向

-->

<result name="hello">/WEB-INF/view/hello.jsp</result>

</action>

</package>

</struts>

 

创建类HelloAction

如何调用方法

  1. 将项目添加在tomcat中,启动。
  2. 在浏览器中输入路径。

     http://localhost:8080/mr-struts2/hello!hello.action

通过以上路径的形式,可以访问到需要访问的方法。

 

 

 

如何接受参数

  1. 我们需要接收前台页面传递的参数。通过数据查询数据库,或者更新数据库。
  2. 在action类中,提供私有化的属性,提供公共的get、set方法。
//私有化属性

private String name;

//提供公共的get、set方法

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

 

3.get方法访问,通过url?name=张三  传参。

url

http://localhost:8080/mr-struts2/hello!hello.action?name=张三

结果

 

 

 

 

如何跳转页面

  1. 我们在项目中会跳转其他的页面,例如跳转list页面展示数据;增加页面,增加数据。
  2. 在action的方法中添加返回值,返回string

  1. 返回的String字符串,将和<action>标签中的<result>标签中的name值进行匹配。跳转到<result>标签中的指定页面。

如何传递参数

  1. 项目中我们还需要将数据发送前台进行展示,例如查询到数据之后,将数据发送到list页面进行展示。
  2. 在类中定义私有化的属性,给属性提供公共的get、set方法,前台jsp页面就可以通过${属性名} 获取到数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值