Struts2(1)

本文详细介绍了Struts2框架的基本概念与优势,包括自动封装参数、参数校验、结果处理等特性,并深入讲解了Struts2的搭建步骤与访问流程。通过具体配置示例与Action类详解,帮助读者快速掌握Struts2的使用技巧。
摘要由CSDN通过智能技术生成

Struts2入门

一 Struts2的介绍
  • 概念

  • Struts2使用优势

优势
1自动封装参数
2参数校验
3结果的处理(转发
4国际化
5显示等待页面
6表单的防止重复提交
  • Struts2具有更加先进的架构以及思想

  • Struts2的历史

    • Struts2与Struts1区别就是技术上没有什么关系
    • Struts2的前身是webwork框架.
二 Struts2框架的搭建
  • 1.导包
  • 2.书写Action类
  • 3.书写src/struts.xml配置
    在这里插入图片描述
  • 4.将Struts2核心过滤器配置到web.xml中
    在这里插入图片描述
  • 5.测试
三 Struts2框架的访问流程&Struts2架构

1. Struts2框架的访问流程在这里插入图片描述在这里插入图片描述
2.Struts2架构思想在这里插入图片描述在这里插入图片描述在这里插入图片描述
放行前为前处理,放行后为后处理.
在这里插入图片描述注意:灰色为框架已经为我们做好的,红色为需要我们写的.绿色为可以使用现成的,也可以自定义的.

三 配置详解
 <?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>
<!-- package:将Action配置封装,就是可以在Package中配置很多action. 
		name属性:给包起个名字,起到标识作用,随便起,不可与其他包名重复
		namespace:给action的访问路径中定义一个命名空间
		extends属性:继承一个指定包 
		abstract属性:包是否为抽象的,标识性属性,标识该包不能独立进行,专门被继承
-->
<!-- 把同一个业务下的action放在一个package中 -->
<package name="hello" namespace="/hello" extends="struts-default">
	<!-- action元素:配置action类
		name属性:决定了action访问资源名
		class属性:action类的完整类名
		method:指定调用action中哪个方法来处理请求
	 -->
	<action name="HelloAction" class="cn.itheima.a_hello.HelloAction" method="hello">
		<!-- result元素:结果配置
				name属性:标识结果处理的名称:与action方法的返回值对应
				type属性:指定调用哪一个result来处理结果,默认使用转发
				标签体:填写页面的相对路径
		 -->
		<result name="success" type="dispatcher">/hello.jsp</result>
	</action>
</package>

配置详解:
1.strust2.xml配置
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述2. strust2中的常量配置
2.1 strust2中默认常量配置位置在这里插入图片描述2.2 修改struts2常量配置(方式先后也是加载先后顺序)
方式一 :src/struts.xml (推荐)
方式二 :在src下创建struts.properties
在这里插入图片描述
方式三 :在项目的web.xml中
在这里插入图片描述2.3 常量配置
在这里插入图片描述3.strust2配置进阶
3.1 动态方法的调用
方式一在这里插入图片描述在这里插入图片描述方式二 (推荐)
在这里插入图片描述
3.2strust2中的默认配置(了解)
在这里插入图片描述

action类详解

Action的书写方式
方式一:在这里插入图片描述方式二:
在这里插入图片描述方式三 (推荐)
在这里插入图片描述

五 练习:

用struts2完成crm工程的web部分
分析:
在这里插入图片描述代码:

public class CustomerAction extends ActionSupport {
private CustomerService service = new CustomerServiceImpl();
public String list() throws Exception {
	//1.接收参数
	String cust_name = ServletActionContext.getRequest().getParameter("cust_name");
	//2.创建离线查询对象
	DetachedCriteria dc = DetachedCriteria.forClass(Customer.class);
	//3.判断参数拼装条件
	if(StringUtils.isNotBlank(cust_name)) {
		dc.add(Restrictions.like("cust_name", "%"+cust_name+"%"));
	}
	//4.调用service将对象传递
	List<Customer> customerList = service.customerList(dc);
	//5.将返回的list放入request域,转发到list.jsp显示
	ServletActionContext.getRequest().setAttribute("customerList",customerList);
	return "list";
	}
}

注意:一定要配置web.xml里的struts核心过滤器
类获取方式为ctrl+shift+t 里面查 strutsp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值