`
wangmored
  • 浏览: 162299 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2 Preparable接口

阅读更多
1. 引言
开发人员在使用struts2开发中,把CRUD方法放在一个action类中,就必定会涉及到一些数据准备的事情;用Preparable接口就再合适不过了。

2. 概述
开发人员在使用struts2涉及到一些数据准备的事情;用Preparable接口,实现这个接口的prepare()方法,这个方法会在action类的所有方法执行前执行,另外开发人员也可以按照它的规则来写一些其它形式的prepare方法,例如aciton中有一个方法叫saveTest(),那么我们可以实现一个prepareSaveTest方法,这样在saveTest ()执行前,会执行prepareSaveTest ()方法。

3. 例子
PrepareTest.java

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.neusoft.mid.bip.adaper.service.ServiceInvoker;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Preparable;

public class PrepareTest extends ActionSupport implements Preparable {

private static final long serialVersionUID = 1L;

/**
* 日志输出类
*/
private final static Log log = LogFactory.getLog(ServiceInvoker.class);

/**
* 公共的list
*/
private List<String> list = new ArrayList<String>();

/**
* 添加的list
*/
private List<String> listAdd = new ArrayList<String>();

/**
* 列表的list
*/
private List<String> listShow = new ArrayList<String>();

public String saveTest() {
return SUCCESS;
}

public String listTest() {
return SUCCESS;
}

@Override
public void prepare() throws Exception {
log.info("prepare init......");
list.add("1");
list.add("2");
list.add("3");
}

public void prepareSaveTest() {
log.info("prepareSaveTest load......");
listAdd.add("a");
listAdd.add("b");
listAdd.add("c");
}

public void prepareListTest() {
log.info("prepareListTest load.......");
listShow.add("*");
listShow.add("-");
listShow.add("+");

}

public List<String> getList() {
return list;
}

public void setList(List<String> list) {
this.list = list;
}

public List<String> getListAdd() {
return listAdd;
}

public void setListAdd(List<String> listAdd) {
this.listAdd = listAdd;
}

public List<String> getListShow() {
return listShow;
}

public void setListShow(List<String> listShow) {
this.listShow = listShow;
}

}

Save 页面
<%@ page language="java" pageEncoding="utf-8"%>
<%@ include file="/WEB-INF/bip/pages/commons/taglibs.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<%@ include file="/WEB-INF/bip/pages/commons/jslibs.jsp"%>
<script type="text/javascript"
src="<%=request.getContextPath()%>/bip/scripts/smap/smap.js"></script>
<script type="text/javascript"
src="<%=request.getContextPath()%>/bip/scripts/smap/util.js"></script>
<script type="text/javascript"
src="<%=request.getContextPath()%>/bip/scripts/jsTree1.0/jquery.jstree.js"></script>


</head>
<body>
<div align ="center" style="margin-top:200px;">
<font size="5">save ...</font><br/>
prepare list 遍历:
<s:iterator value="list" status="sp" id="com">
<s:property value="com"/>...
</s:iterator>
<br/>
prepare listShow 遍历:
<s:iterator value="listShow" status="sp" id="show">
<s:property value="show"/>...
</s:iterator>
<br/>
prepare listAdd 遍历:
<s:iterator value="listAdd" status="sp" id="add">
<s:property value="add"/>...
</s:iterator>
</div>


<div align="right" style="margin-top:75px;margin-right:70px;">
<a href="list.shtml"/>list</a>
</div>
</body>
</html>

List 页面
<%@ page language="java" pageEncoding="utf-8"%>
<%@ include file="/WEB-INF/bip/pages/commons/taglibs.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<%@ include file="/WEB-INF/bip/pages/commons/jslibs.jsp"%>
<script type="text/javascript"
src="<%=request.getContextPath()%>/bip/scripts/smap/smap.js"></script>
<script type="text/javascript"
src="<%=request.getContextPath()%>/bip/scripts/smap/util.js"></script>
<script type="text/javascript"
src="<%=request.getContextPath()%>/bip/scripts/jsTree1.0/jquery.jstree.js"></script>


</head>
<body>
<div align ="center" style="margin-top:200px;">
<font size="5">list ...</font><br/>
prepare list 遍历:
<s:iterator value="list" status="sp" id="com">
<s:property value="com"/>...
</s:iterator>
<br/>
prepare listShow 遍历:
<s:iterator value="listShow" status="sp" id="show">
<s:property value="show"/>...
</s:iterator>
<br/>
prepare listAdd 遍历:
<s:iterator value="listAdd" status="sp" id="add">
<s:property value="add"/>...
</s:iterator>
</div>


<div align="right" style="margin-top:75px;margin-right:70px;">
<a href="save.shtml"/>save</a>
</div>
</body>
</html>
Spring 文件配置
<bean id="aaa" class="com.neusoft.mid.bip.aaa.test.PrepareTest" scope="prototype"></bean>
Struts 文件配置
<package name="aaa" namespace="/aaa" extends="mat-default">
<action name="save" class="aaa" method="saveTest">
<result name="success">
/WEB-INF/bip/pages/aaa/save.jsp
</result>
</action>

<action name="list" class="aaa" method="listTest">
<result name="success">
/WEB-INF/bip/pages/aaa/list.jsp
</result>
</action>
</package>
分享到:
评论
1 楼 a13597418943 2014-12-18  
    

相关推荐

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    深入浅出Struts2

    Struts 2 是Java Web 应用首选的MVC 框架。本书对Struts 2 的工作机理进行了透彻的阐述。书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

    struts+spring+hibernate整合

    Spring4.0、Struts2.3.15、Hibernate4.2.4、jQuery1.9.1涉及到了诸多开发时的细节:ModelDriven、Preparable 拦截器、编写自定义的类型转换器、Struts2 处理 Ajax、OpenSessionInViewFilter、迫切左外连接、Spring ...

    Java详解ModelDriven和Preparable拦截器.doc

    Java详解ModelDriven和Preparable拦截器.doc

    [尚硅谷]_封捷_ModelDriven和Preparable拦截器.pdf

    [尚硅谷]_封捷_ModelDriven和Preparable拦截器.pdf

    MySQL prepare语句的SQL语法

    MySQL prepare语法: PREPARE statement_name FROM preparable_SQL_statement; /*定义*/ EXECUTE statement_name [USING @var_name [, @var_name] …]; /*执行预处理语句*/ {DEALLOCATE | DROP} PREPARE statement_...

    MySQL中预处理语句prepare、execute与deallocate的使用教程

    PREPARE stmt_name FROM preparable_stmt EXECUTE stmt_name [USING @var_name [, @var_name] ...] - {DEALLOCATE | DROP} PREPARE stmt_name 举个栗子: mysql&gt; PREPARE pr1 FROM 'SELECT ?+?'; Query OK, 0 r

    Javaweb技术文档

    封捷_ModelDriven和Preparable拦截器 张晓飞_Tomcat的设计模式分析 张晓飞_Tomcat系统架构分析 张晓飞_UML模型图 张晓飞_WEB书城. 张晓飞_正则表达式学习手册 HTTP协议简介_封捷 JNDI原理_张晓飞 Servlet_封捷 Web...

Global site tag (gtag.js) - Google Analytics