【SSH】Struts2学习(四)拦截器、struts2标签

来源:互联网 发布:知豆电动汽车有限公司 编辑:程序博客网 时间:2024/06/04 17:42

一、自定义拦截器

1、拦截器3种创建方式

(1)实现 Interceptor接口

/** * 拦截器第一种创建方式 *  * @author Administrator 拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 */public class MyInterceptor implements Interceptor {@Override// 销毁方法public void destroy() {// TODO Auto-generated method stub}@Override// 初始化方法public void init() {// TODO Auto-generated method stub}@Override// 拦截方法public String intercept(ActionInvocation arg0) throws Exception {// TODO Auto-generated method stubreturn null;}}

(2)继承AbstractInterceptor

/** * 拦截器第二种创建方式:继承AbstractInterceptor * @author Administrator * 帮我们空实现了init和destroy方法,我们如果不需要实现这两个方法,就可以只实现intercept方法 */public class MyInterceptor2 extends AbstractInterceptor{@Overridepublic String intercept(ActionInvocation arg0) throws Exception {// TODO Auto-generated method stubreturn null;}}

(3)继承MethodFilterInterceptor

/** * 拦截器第三种创建方式:继承MethodFilterInterceptor 方法过滤拦截器 * @author Administrator * 功能:定制拦截器拦截的方法定制需要拦截的方法 定制哪些方法不需要拦截 */public class MyInterceptor3 extends MethodFilterInterceptor{@Overrideprotected String doIntercept(ActionInvocation invocation) throws Exception {//前处理System.out.println("MyInterceptor3前处理");//放行invocation.invoke();//后处理System.out.println("MyInterceptor3后处理");//不放行,直接跳转一个结果页面,不执行后续的拦截器以及Action,直接交给Result处理页面结果进行页面跳转return "success";}}

2、拦截器配置介绍

struts.xml

3、定制拦截方法

struts.xml

4、定义全局结果集



二、Struts2标签

1、Struts2标签结构


2、struts2标签演示

(1)iterator标签  if elseif else标签 property标签配合ognl表达式页面取值

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!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><!-- -----------iterator---------- --><!-- 遍历标签 iterator --><s:iterator value="#list"><s:property /><br /></s:iterator><br /><s:iterator value="#list" var="name"><s:property value="#name" /><br /></s:iterator><s:iterator begin="1" end="100" step="1"><s:property />|</s:iterator><!-- -----------if elseif else---------- --><hr><s:if test="#list.size()==4">list长度为4</s:if><s:elseif test="#list.size()==3">list长度为3</s:elseif><s:else>list长度为其他值</s:else><!-- -----------property配合ognl表达式页面取值---------- --><hr><s:property value="#list.size()" /></body></html>

(2)表单标签等

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix="s" uri="/struts-tags" %><!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><!-- struts2表单标签 --><!-- 好处1:内置了一套样式 好处2:自动回显,根据栈中的属性theme:指定表单主题xhtml:默认 simple:没有主题--><s:form action="Demo3Action" namespace="/" theme="xhtml"><s:textfield name="name" label="用户名"></s:textfield><s:textfield name="password" label="密码"></s:textfield><s:radio list="{'男','女'}" name="gender" label="性别"></s:radio><s:radio list="#{1:'男',0:'女'}" name="gender" label="性别"></s:radio><s:checkboxlist list="#{2:'抽烟',1:'喝酒',0:'烫头'}" name="habit" label="爱好"></s:checkboxlist><s:select list="#{2:'吃饭',1:'睡觉',0:'打豆豆'}" headerKey="" headerValue="---请选择---" name="point" lable="特长"></s:select><s:file name="photo" label="头像"></s:file><s:textarea name="desc" lable="个人简介"></s:textarea><s:submit value="提交"></s:submit></s:form><s:actionerror/></body></html>

参考源码:https://github.com/AmazeLee/Struts2.git


Human life is ephemera, which makes it precious. 

生命短暂,所以珍贵。