`
woshixushigang
  • 浏览: 575908 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

struts2的action中默认不会初始化属性,也不会实例化属性

阅读更多

编写jdbc分页时易出现的马虎。 

 

public String getMessageMethod() {
  // struts2 通过默认set get 传过来数值 默认情况下,页面传值到action时候已经将Page 初始化,此处
  // 如再加 = new Page(); 将覆盖 页面传来的数值。
  //但是如果一开始就初始化Page 之后set get 没问题。
  // page = new Page();
  //struts2 默认不会初始化类
//  int currentPage = 0;
//   try{
//   currentPage = new Integer(ServletActionContext.getRequest().getParameter("page.currPageNum"));
//   }catch(Exception e){
//   currentPage=1;
//   }
//  try {
//   page.getCurrPageNum();
//   System.out.println(page.getCurrPageNum());
//  } catch (NullPointerException e) {
//   // TODO Auto-generated catch block
//   System.out.println("处理异常,网页上仍然报空指针错误");
//  }
  // 读取src/jdbc.properties中定义的pageSize
  int pageSize = Integer.parseInt((String) (ReaderProperty
    .getReaderProperty().get("pageSize")));
  page.setPageSize(pageSize);
  // 初始化page对象相关信息
  page.init("guestbook", "id", pageSize,page.getCurrPageNum(), "", "asc");
  // 查询用户信息
  // 将相应信息放入request中
  list = bizintf.getAllMessage(page.getSQL());
  for (int i = 0; i < list.size(); i++) {
   System.out.println(list.get(i).getId());
   
  }
  return SUCCESS;
 }

 

如果在action中直接private Page page ;在方法中System.out.println(page.getCurrPageNum());

会出现空指针错误。

 

 

如果在action中直接private Page page = new Page(); 则正常。

 

 

 

如果查询数据库里全部信息并分页,此时可以有两种方案,

1、

 int currentPage = 0;
//   try{
//   currentPage = new Integer(ServletActionContext.getRequest().getParameter("page.currPageNum"));
//   }catch(Exception e){
//   currentPage=1;
//   }

 

2、就是刚才用的struts传值方式。

 

 

 

分享到:
评论

相关推荐

    探讨Struts的初始化方法

    `ActionServlet`在初始化过程中主要负责配置和管理整个Struts应用的环境,包括但不限于配置文件的加载、拦截器的注册以及控制器的设置等。 #### 三、Struts的初始化流程 **1. 初始化方法init()** - `Action...

    struts2的属性配置

    在`init-param`子元素中,可以设置Struts2的初始化参数,例如`struts.action.extension`。当在`web.xml`中设置了这些参数,它们将覆盖`struts.xml`和`struts.properties`中的相应配置,因此在实际应用中应谨慎处理。...

    struts1和struts2的区别

    - **Struts2**: Struts2中的Action更像是工厂模式下的产品,每个Action实例都是线程安全的。Struts2提供了ActionSupport基类来简化Action的实现。Action本身可以是任何实现了特定接口的Java对象,甚至是普通的POJO。...

    struts2常量详解

    5. **web.xml**:Web应用的部署描述符,虽然不是Struts2特有的,但其中可以配置Struts2的初始化参数。 配置文件的加载顺序遵循一定的规则。在启动Tomcat时,Struts2会按照`struts.configuration.files`指定的顺序...

    struts2默认拦截器之prepare

    例如,你可能需要在Action初始化时从数据库中获取一些数据,或者设置一些默认值。通过在`prepare()`方法中完成这些操作,可以保持Action的`execute()`方法干净,专注于业务逻辑。 此外,`prepare`拦截器还可以用于...

    Struts2与Struts1区别

    而 Struts2 Action 可以通过依赖注入进行初始化和测试,提高了测试的便利性。 5. **输入数据的处理**: - Struts1 使用 ActionForm 来捕获用户输入,ActionForm 必须继承基类,有时会造成额外的类定义。Struts2 则...

    struts2+spring实例程序

    Spring可以通过其IoC容器初始化Struts2的Action类,并进行依赖注入。同时,Spring的事务管理可以确保数据操作的原子性和一致性。Struts2的拦截器还可以与Spring的AOP结合,实现更复杂的业务逻辑和异常处理。 在实际...

    Struts1 MVC实例

    7. **ActionServlet**:这是Struts1框架的入口点,它是一个Servlet,负责初始化框架并处理HTTP请求。 8. **DAO(Data Access Object)**:虽然Struts1框架本身并未直接包含DAO层,但在实际开发中,我们通常会创建...

    struts1&struts2

    - **Struts2** 提供了更好的测试支持,Action可以通过设置属性、初始化和调用方法进行单元测试,依赖注入使得测试更加简单。 7. **输入数据处理** - **Struts1.x** 使用ActionForm对象捕获用户输入,ActionForm...

    Struts2深入理解

    - **在`web.xml`中配置核心过滤器:** Struts2框架通过配置一个过滤器来启动,这个过滤器负责初始化Struts2框架。 - **定义Action类并配置Action:** Action类通常需要继承`ActionSupport`类,以便利用Struts2提供...

    struts2jar.zip

    6. **Struts2的生命周期**:包括初始化、请求处理、响应生成等阶段。 7. **Action的注解配置**:Struts2支持通过注解来简化配置,如@Action、@Result等。 8. **.struts2-convention-plugin**:这个插件允许开发者...

    struts2的新特性

    在Struts2中,Action改为Prototype模式,即每个请求都会创建一个新的Action实例。这样就可以让Action拥有成员变量,从而使得代码更简洁,也更容易理解和维护。这一改变极大地简化了Action的实现方式,并提高了开发...

    转:struts1与struts2的区别

    - **Struts2**: 在Struts2中,可以通过初始化、设置属性和调用方法等方式轻松地测试Action。依赖注入的支持进一步简化了测试过程,使开发者能够更加专注于逻辑验证而非环境配置。 #### 5. 输入数据的处理方式 - **...

    struts2面试题

    其中,StrutsPrepareAndExecuteFilter是Struts2框架的核心组件之一,它负责初始化框架,并处理用户的请求。 3. **Struts2的数据转换与验证机制**:Struts2提供了强大的数据转换和验证功能,可以方便地进行表单数据...

    struts2面试题1.pdf

    在 Struts2 中,Action 可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。 捕获输入 Struts1 使用 ActionForm 对象捕获输入。所有的 ActionForm 必须继承一个基类。因为其他 JavaBean ...

    Struts2+MyBatis+Sping框架+Struts2上传实例

    压缩包中的"USER3.sql"可能是一个数据库脚本,用于预先创建或初始化与文件上传相关的表结构。在这个例子中,它可能创建了一个`User`表,用于存储文件信息。而"optionLog"可能是日志文件,记录了应用程序运行过程中的...

    struts2源码分析总结

    在`Dispatcher`的初始化过程中,它会读取`web.xml`或其他配置文件,解析Struts2的配置信息,如Action、结果类型、拦截器等。这些配置信息被加载到内存中的容器中,供后续请求处理时使用。`Dispatcher`还负责初始化...

    一个struts的action跳转大全

    之后,会调用`form`对象的`reset()`方法对表单数据进行初始化处理,然后将表单中的参数填充到`form`对象中。如果`validate`属性没有设置为`false`,则会进一步调用`validate()`方法来进行表单验证。如果`validate()`...

Global site tag (gtag.js) - Google Analytics