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,jdbc)