关于Struts2 Action中get和set惹得祸。

代码:

 1 public class RandomAction extends PageAction {
 2
 3     /**随机抽取**/
 4     private IRandomService randomService;
 5
 6     /**责任民警**/
 7     private IScZrmjService scZrmjService;
 8
 9     /**企业基本信息**/
10     private IQyjbxxService qyjbxxService;
11
12     private User user;
13
14     //private Map randomMap=new HashMap();
15
16     public void setRandomService(IRandomService randomService) {
17         this.randomService = randomService;
18     }
19
20     public void setScZrmjService(IScZrmjService scZrmjService) {
21         this.scZrmjService = scZrmjService;
22     }
23
24     public void setQyjbxxService(IQyjbxxService qyjbxxService) {
25         this.qyjbxxService = qyjbxxService;
26     }
27
28     /**
29      * 获取随机抽取责任民警列表
30      * @return
31      */
32     public String queryRandomZrmjList(){
33         //randomMap.put("zrmjList", this.getRandomZrmjList());
34         //randomMap.put("qyjbxxList", this.getRandomQyjbxxList());
35         return "success";
36     }
37
38     /**
39      * 获取随机抽取责任民警列表
40      * @return
41      */
42     @SuppressWarnings("unchecked")
43     public List<Zrmjfghy> getRandomZrmjList(){
44         ActionContext ctx = ActionContext.getContext();
45         HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);
46         HttpSession session= request.getSession();
47         user= (User)session.getAttribute(Constants.userKey);
48         Integer _deptId=user.getDepartid();
49         Zrmjfghy _getZrmj=new Zrmjfghy();
50         if(_deptId==2){
51             _getZrmj.setGxdwbm("");
52         }else{
53             _getZrmj.setGxdwbm(_deptId+"");
54         }
55         return scZrmjService.getRandomZrmjList(_getZrmj);
56     }
57
58     /**
59      * 获取随机企业列表
60      * @return
61      */
62     @SuppressWarnings("unchecked")
63     public List<Qyjbxx> getRandomQyjbxxList(){
64         ActionContext ctx = ActionContext.getContext();
65         HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);
66         HttpSession session= request.getSession();
67         user= (User)session.getAttribute(Constants.userKey);
68         String _deptCode=user.getDepartcode();
69         Qyjbxx _getQyjbxx=new Qyjbxx();
70         _getQyjbxx.setGxdwbm(_deptCode);
71         return qyjbxxService.getListQyjbxx(_getQyjbxx);
72     }
73
74 }

首先只有queryRandomZrmjList()方法的时候程序完全可以执行。没什么问题。之后觉得这个方法中代码太多。便拆分为getRandomZrmjList()和getRandomQyjbxxList()。这下可愁死了突然间程序变得很慢。浏览器和MyEclipse会死掉。愁死人了。怎么也没找到原因。经过数小时的奋斗。在get。set变量的时候。灵感一发。方法前加get似乎有问题。。。因为Struts2内部机制。所以getRandomZrmjList()和getRandomQyjbxxList()会被当做get和set执行。讲两个方法名改成不以get和set开头之后。程序运行完全没有问题。



关于Struts2 Action中get和set惹得祸。

时间: 2024-10-15 12:25:56

关于Struts2 Action中get和set惹得祸。的相关文章

Struts2 Action中动态方法调用、通配符的使用

一.Struts2执行过程图: 二.struts2配置文件的加载顺序 struts-default.xml---struts-plugin.xml---struts.xml 具体步骤: 三.Action中动态方法调用<Dynamic Method Invocation> DMI 第一种方式: 自定义DMIAction类,使它继承ActionSupport类,该类无需手动重写execute(),底层有默认实现.因此我们也可以自定义方法list. struts.xml中的action元素植入met

第三章Struts2 Action中动态方法调用、通配符的使用

01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问ServletAPI时实现用户会话跟踪,其简单的程序运行流程图如下 Struts2框架是基于MVC模式.基于MVC模式框架的核心就是控制器对所有请求进行统一处理.Struts2的控制器StrutsPrepareAndExecuteFilter由ServletAPI中的Filter充当,当web容器的接收到登录

struts2 中属性驱动(其实就是struts2 action 中处理 request 的参数【old 方式servlet api 封装数据到javabean中(or beanutils)】),这里属性驱动是新方式

1.属性驱动 a\  一般的set 1 public class UserAction extends ActionSupport { 2 3 private String username; 4 private String password; 5 6 public void setUsername(String username) { 7 this.username = username; 8 } 9 10 public void setPassword(String password) {

struts2 action中的私有变量

struts2 框架中action 中都有一些私有变量来接收ajax传过来的值,比如:有个page(private String page;)接收传过来的页数,当ajax访问这个action 而没有传过来page参数时,page = null ,而不是""

在Struts2 Action中快速简便的访问Request、Session等变量

前言——正常情况下如何在Action中获取到这些变量 全部方法(共四种)可以参考:http://blog.csdn.net/itmyhome1990/article/details/7019476 这里采用其中一种作为示例,即利用ServletActionContext上下文来完成: 1 public class LoginAction { 2 private HttpServletRequest request; 3 private HttpSession session; 4 private

struts2 action 中autowired 不能注入

一.pom.xml <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.15.3</version> </dependency> 二.struts.xml <!-- struts.xml 使用spring工厂 --> <cons

struts2 action中获取request session application的方法

共四种方式: 其中前两种得到的是Map<String,Object>  后两种得到的才是真正的request对象 而Map就是把request对象中的属性取出做成了键值对而已. [方法一] public class LoginAction { private Map request; private Map session; private Map application; public String execute() { request = (Map)ActionContext.getCo

理解Struts2的Action中的setter方法是怎么工作的

接触过webwork和Struts2的同行都应该知道, 提交表单的时候,只要Action中的属性有setter 方法,这些表单数据就可以正确赋值到Action中属性里:另外对于Spring配置文件中声明的bean,也可以在Action中声明setter 方法将其注入到Action实例中.那么现在要研究:这些是怎么工作的呢? (1)提交表单时的参数 在struts2-core-2.3.1.2.jar压缩包内的struts-default.xml配置文件中有这个配置:<interceptor nam

在Struts2的Action中取得请求参数值的几种方法

把参数放到作用域里面去. 如:action 中: request.setAttribute("参数名","值");   页面上:  request.getAttribute("参数名"); request.getParameter()方法完全可以获得URL参数,检查下是否参数名写错 你使用的是不是BaseAction.如果就是server.getRequest().getParameter() 看看你的控件是不是 name 属性!如果id的话就获