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>