页面请求一个action
该action里有个方法getUser() 返回一个User对象
public User getUser(){//查询数据库}
但是页面引用该User对象的属性时,引用几次就查询了几次数据库,是不是哪里写的不对?该怎么改?
<s:property value="user.xxx"/>页面这样用的
该action里有个方法getUser() 返回一个User对象
public User getUser(){//查询数据库}
但是页面引用该User对象的属性时,引用几次就查询了几次数据库,是不是哪里写的不对?该怎么改?
<s:property value="user.xxx"/>页面这样用的
<s:property value="user.xxx"/> 这里的user.xxx前面的user是getter方法名
每次读到这个语句,它都会调用一次getUser(){}方法来获得user。
此正解,你的查询要与getUser分离
execute方法里?或者是那里?
谢谢大家指教
1.action中定义一个User类型的变量,比如:private User user;然后增加它的get和set方法;
2.在execute方法中查询数据库,将查询结果赋给的user对象,在页面就可以直接引用这个user了,是通过它的get方法获得的。
恩,放在exectute方法里面可以,写在自己定义的方法里面也可以,假如你建了个xxxAction(某个地方你激活了这个action),里面就是你连接数据库,查询数据库的方法,然后把查询出来的结果赋给你的user就ok了
当然是在execute方法里调用业务代码了 写好处理数据库的类 如UseDao
然后在Action的execute方法中调用UseDao的业务代码
如:UserDao userDao = new UserDao();
List list = (User)userDao.getUserDate(user.Id);
Map session = ActionContext.getContext().getSession();
session.put("user",list);
return success;楼主 OK?