package com.java1234.action;//所在的包

 import java.sql.Connection;//数据库连接的类
import java.util.ArrayList;//ArrayList和List是在private List<DataDic> dataDicList=new ArrayList<DataDic>();中用到
import java.util.List;//ArrayList和List是在private List<DataDic> dataDicList=new ArrayList<DataDic>();中用到 import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import net.sf.json.JSONObject; import org.apache.struts2.ServletActionContext;//访问Servlet API的时候使用的非IOC方式 ,方法一:org.apache.Structs2.ServletActionContext获取session,request,response
import org.apache.struts2.interceptor.ServletRequestAware; ////访问Servlet API的时候 使用的IOC方式(Inversion of Control,自身不创建对象,仅仅描述创建它们的方式.)这里是 让Action实现ServletRequestAware接口而已,没有实现ServletResponseAware接口还有 SessionWare接口 import com.java1234.dao.DataDicDao;
import com.java1234.model.DataDic;
import com.java1234.model.PageBean;
import com.java1234.util.DbUtil;
import com.java1234.util.NavUtil;
import com.java1234.util.PageUtil;
import com.java1234.util.PropertiesUtil;
import com.java1234.util.ResponseUtil;
import com.java1234.util.StringUtil;
import com.opensymphony.xwork2.ActionSupport;//action需要继承这个类 /*这里是让类实现ServletRequestAware接口就是非IOC方式,没有实现ServletResponseAware接 口还有SessionWare接口*/
// 这里是让类继承了ActionSupport这个类,实现IOC方式
public class DataDicAction extends ActionSupport implements ServletRequestAware{ /**
*
*/
private static final long serialVersionUID = 1L; private HttpServletRequest request;//定义request
private DbUtil dbUtil=new DbUtil();
private DataDicDao dataDicDao=new DataDicDao();
private List<DataDic> dataDicList=new ArrayList<DataDic>();//定义一个DataDic 类型的ArrayLst,但是ArrayList定义的时候需要用List a=new ArrayList();定义 private String mainPage;
private String navCode; private String s_ddTypeName; private String page;
private int total;
private String pageCode; private String ddId; public String getDdId() {
return ddId;
} public void setDdId(String ddId) {
this.ddId = ddId;
} public String getPage() {
return page;
} public void setPage(String page) {
this.page = page;
} public int getTotal() {
return total;
} public void setTotal(int total) {
this.total = total;
} public String getPageCode() {
return pageCode;
} public void setPageCode(String pageCode) {
this.pageCode = pageCode;
} public List<DataDic> getDataDicList() {
return dataDicList;
} public void setDataDicList(List<DataDic> dataDicList) {
this.dataDicList = dataDicList;
} public String getMainPage() {
return mainPage;
} public void setMainPage(String mainPage) {
this.mainPage = mainPage;
} public String getNavCode() {
return navCode;
} public void setNavCode(String navCode) {
this.navCode = navCode;
} public String getS_ddTypeName() {
return s_ddTypeName;
} public void setS_ddTypeName(String s_ddTypeName) {
this.s_ddTypeName = s_ddTypeName;
} public String list(){//定义一个方法
if(StringUtil.isEmpty(page)){
page="1";
}
Connection con=null;
try{
HttpSession session=request.getSession();//非IoC方式的第一种 方法:使用org.apache.struts2.SerVletActionContext获取session对象
DataDic s_dataDic=new DataDic();
if(s_ddTypeName!=null){
s_dataDic.setDdTypeName(s_ddTypeName);//非IoC方式的第 一种方法:使用org.apache.struts2.SerVletActionContext获取session对象
session.setAttribute("s_ddTypeName", s_ddTypeName);// 非IoC方式的第一种方法:使用org.apache.struts2.SerVletActionContext获取session对象
}else{
Object o=session.getAttribute("s_ddTypeName");//非IoC 方式的第一种方法:使用org.apache.struts2.SerVletActionContext获取session对象
if(o!=null){
s_ddTypeName=(String)session.getAttribute ("s_ddTypeName");//非Ioc方式的第一种方法:使用org.apache.struts2.SerVletActionContext 获取session对象
s_dataDic.setDdTypeName(s_ddTypeName);
}
}
PageBean pageBean=new PageBean(Integer.parseInt (page),Integer.parseInt(PropertiesUtil.getValue("pageSize")));
con=dbUtil.getCon();
dataDicList=dataDicDao.dataDicList(con,s_dataDic,pageBean);
total=dataDicDao.dataDicCount(con, s_dataDic);
pageCode=PageUtil.genPagation(request.getContextPath ()+"/dataDic!list", total, Integer.parseInt(page), Integer.parseInt (PropertiesUtil.getValue("pageSize")));
navCode=NavUtil.getNavgation("系统管理", "数据字典维护");
mainPage="dataDic/dataDicList.jsp";
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return SUCCESS;
} @Override
public void setServletRequest(HttpServletRequest request) {//IoC方式访问 Servlet API,要用到request对象。为request方法添加setter方法
// TODO Auto-generated method stub
this.request=request;
} public String delete(){
Connection con=null;
try{
con=dbUtil.getCon();
JSONObject resultJson=new JSONObject();
dataDicDao.dataDicDelete(con, ddId);
resultJson.put("success", true);
ResponseUtil.write(resultJson, ServletActionContext.getResponse());//非Ioc方式的第一种方法:使用 org.apache.struts2.SerVletActionContext
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
}

struts中调用servlet的两种方法——IcC方式和非IoC方式的代码demo的更多相关文章

  1. [转]Delphi调用cmd的两种方法

    delphi调用cmd的两种方法vars:string;begins:='cmd.exe /c '+edit1.Text+' >c:\1.txt';winexec(pchar(s),sw_hid ...

  2. C++调用DLL有两种方法——静态调用和动态调用

    C++调用DLL有两种方法——静态调用和动态调用 标签: dllc++winapinullc 2011-09-09 09:49 11609人阅读 评论(0) 收藏 举报  分类: cpp(30)  [ ...

  3. [转]Qt中定时器使用的两种方法

    Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 其精确度一般依赖于操作系统和硬件,但一般支持20ms.下面将分别介绍两种方法来使用定时器. 方法 ...

  4. python中执行shell的两种方法总结

    这篇文章主要介绍了python中执行shell的两种方法,有两种方法可以在Python中执行SHELL程序,方法一是使用Python的commands包,方法二则是使用subprocess包,这两个包 ...

  5. vue中使用echarts的两种方法

    在vue中使用echarts有两种方法一.第一种方法1.通过npm获取echarts npm install echarts --save 2.在vue项目中引入echarts 在 main.js 中 ...

  6. php获取数组中重复数据的两种方法

    分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...

  7. Ajax中解析Json的两种方法详解

    eval();  //此方法不推荐 JSON.parse();  //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name&qu ...

  8. Ajax中解析Json的两种方法

    eval(); //此方法不推荐 JSON.parse(); //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name" ...

  9. Hive开发中使用变量的两种方法

    在使用hive开发数据分析代码时,经常会遇到需要改变运行参数的情况,比如select语句中对日期字段值的设定,可能不同时间想要看不同日期的数据,这就需要能动态改变日期的值.如果开发量较大.参数多的话, ...

随机推荐

  1. c语言输入与输出库函数#include<stdio.h>

    last modified: 2010-05-28 输入与输出<stdio.h> 头文件<stdio.h>定义了用于输入和输出的函数.类型和宏.最重要的类型是用于声明文件指针的 ...

  2. SharePoint Site Pages & Application Pages

    转:http://www.wcode.net/plus/view.php?aid=1582071 SharePoint一个很重要的概念就是Site Pages和Application Pages.接触 ...

  3. SharePoint 2010 部署 WSP 包

    转:http://www.cnblogs.com/myheaven/archive/2011/05/19/2051180.html .net在工程的下面生成了WSP包,在Debug下面.需要放到生产环 ...

  4. Axis2 WebService(基于REST风格)

    http://www.lifeba.org/arch/java_axis2_webservice_rest.html Axis2除了提供传统的webservice方法外,还提供了对Rest的支持.Ax ...

  5. poj2686 Traveling by Stagecoach

                    http://poj.org/problem?id=2686                                                  Trav ...

  6. The Shortest Path in Nya Graph

    Problem Description This is a very easy problem, your task is just calculate el camino mas corto en ...

  7. 如何使用Visual Studio 2013 创建Azure云应用

    创建 Azure 云服务 Azure 云服务包括执行应用程序所需操作的角色.当你将云服务发布到 Azure 时,每个角色将在云中的虚拟机上运行.有关如何开发 Azure 云服务的详细信息. 创建 Az ...

  8. HDU1075 - What Are You Talking About(Trie树)

    题目大意 给定一些火星文单词以及对应的英语单词,然后给你一些火星文,要求你翻译成对应的英文 题解 第一次写Trie树! 把所有火星文单词插入到Trie树中,并且每个火星文单词结尾的节点记录相应英文单词 ...

  9. 【ACM/ICPC2013】树形动态规划专题

    前言:按照计划,昨天应该是完成树形DP7题和二分图.最大流基础专题,但是由于我智商实在拙计,一直在理解树形DP的思想,所以第二个专题只能顺延到今天了.但是昨天把树形DP弄了个5成懂我是很高兴的!下面我 ...

  10. flot中文说明文档 简版

    Flot参考文档: 一.对绘图函数plot的调用:var plot=$.plot(placeholder,data,options) ----------- placeholder --------- ...