JavaEE框架---Struts2第四部分

 

 


                                1.2Struts2的拦截器(*****)

1.2.1拦截器概述

1.2.1.1什么是拦截器

  • Interceptor:拦截器,起到拦截Action的作用。
    • Filter:过滤器,过滤从客户端向服务器发送的请求。
    • Interceptor:拦截器,拦截是客户端对Action的访问。更细粒度化的拦截。(拦截Action中的具体的方法)。
  • Struts2框架核心的功能都是依赖拦截器实现。

1.2.1.2Struts2的执行流程

        客户端向服务器发送一个Action的请求,执行核心过滤器(doFilter)方法。在这个方法中,调用executeAction()方法,在这个方法内部调用dispatcher.serviceAction();在这个方法内部创建一个Action代理,最终执行的是Action代理中的execute(),在代理中执行的execute方法中调用ActionInvocation的invoke方法。在这个方法内部递归执行一组拦截器(完成部分功能),如果没有下一个拦截器,就会执行目标Action,根据Action的返回的结果进行页面跳转。

1.2.2拦截器入门

1.2.2.1搭建Struts2的环境

  • 要被拦截的Action及其方法 

 

1.2.2.2编写拦截器类

  • 编写一个类实现Interceptor接口或者继承AbstractInterceptor,MethodFilterInterceptor类。

拦截器一: 

拦截器二: 

1.2.2.3对拦截器进行配置

  • 方式1:定义拦截器进行配置

  • 方式二:定义一个拦截器栈的方式

                                  1.3CRM的权限拦截器


                                  1.4Struts2的标签库

1.4.1通用标签库

1.4.1.1判断标签

  • <s:if>、<s:elseif>、<s:else>

  • <s:iterator>

  • 其他常用的标签
    • <s:property/>
    • <s:debug/>
    • <s:date />----在页面上进行日期格式化。

1.4.2UI标签库(方便数据回显)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>UI标签</h1>
<h3>传统的表单</h3>
<form action="${ pageContext.request.contextPath }/uiAction.action" method="post">
	<input type="hidden" name="id"/>
	用户名:<input type="text" name="name"/><br/>
	密码:<input type="password" name="password"><br/>
	年龄:<input type="text" name="age"><br/>
	性别:<input type="radio" name="sex" value="男">男
	<input type="radio" name="sex" value="女">女<br/>
	籍贯:<select name="city">
		<option value="">-请选择-</option>
		<option value="北京">北京</option>
		<option value="上海">上海</option>
		<option value="深圳">深圳</option>
		<option value="韩国">韩国</option>
	</select><br/>
	爱好:<input type="checkbox" name="hobby" value="basketball"/>篮球
	<input type="checkbox" name="hobby" value="football"/>足球
	<input type="checkbox" name="hobby" value="volleyball"/>排球
	<input type="checkbox" name="hobby" value="pingpang"/>乒乓球<br/>
	介绍:<textarea name="info" cols="8" rows="2"></textarea><br/>
	<input type="submit" value="提交"/>
</form>

<s:debug></s:debug>
<h3>UI标签的表单</h3>
<s:form action="uiAction" namespace="/" method="post" >
	<s:hidden name="id" />
	<s:textfield name="name" label="用户名"/>
	<s:password name="password" label="密码" showPassword="true"/>
	<s:textfield name="age" label="年龄"/>
	<s:radio list="{'男','女'}" name="sex" label="性别"/>
	<s:select list="{'北京','上海','深圳','韩国'}" name="city" label="籍贯" headerKey="" headerValue="-请选择-"/>
	<s:checkboxlist list="#{'basketball':'篮球','football':'足球','volleyball':'排球','pingpang':'乒乓球'}" name="hobby" label="爱好"/>
	<s:textarea name="info" cols="8" rows="2" label="介绍" ></s:textarea>
	<s:submit value="提交"/>
</s:form>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值