action中execute()方法里执行了数据库查方法,将查询出来的值返回一个对象,怎么将该对象放置到attribute里面
1、
public execute(){
  HttpServletRequest request = ServletActionContext.getRequest();
  request.setAtrribute("user",user);//user是一个对象,它有username和password两个属性;
}
2、public class HMViewAction implements ServletRequestAware {
@get&set----其实你直接用user就行,不用request也没问题。你可别我这么写,自己写set和get方法吧!
  private User user;private HttpServletRequest request;
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
public String execute() throws Exception {
request.setAtrribute("user",user)
return SUCCESS;
}

都是不行的,求助ing

解决方案 »

  1.   

    request.setAtrribute("user",user);可以呀
      

  2.   

    Struts 2 不用 request.setAttribute!你把你的对象作为这个 Action 的成员变量,提供 get 方法吧。
      

  3.   

    两种方式都是可以的,楼主你确定你的user不是空?,难后你怎么取值的呢??值放到request内置作用域中那么跳转方式只有请求转发才行,重定向会丢失的
      

  4.   

    使用struts2还需要使用request.setAtrribute("user",user)的方式?
    直接在action里定义:
    private User user = null;  提供get/set方法。
    然后在方法里直接使用user,比如这样 user = userDAO.getUser(id);
    其他不用管,user就是放在request里的。在前台可以直接在request域里获取。
      

  5.   

    直接在action里定义:
    private User user = null; 提供get/set方法。
      

  6.   

    楼主你写错了!request.setAtrribute -> request.setAttribute
      

  7.   

    有三种方式:
    1:解*方式,那个字不会打
    Struts2对servlet Api 中的HttpServletRequest,进行了封装,构造Map对象来替代HttpServletRequest
    ActionContext ac = ActionContext.getContext();
       Map request=(Map)ac,get("request");
       request.put("user",user);
    2:*合方式,
    原深的就是,不过用ServletActionContext点出来,serlevt平常怎么操作就怎么操作:
    ServletActionContext.getRequest().setAttribute("user", "user");
    不过你做的类似用户登录的功能吧?应该放进会话里面
    ServletActionContext.getRequest().getSession().setAttribute("user", u);
    对于你来说用这种就可以了
    3:Action类实现特定的接口 ,org.apache.struts2.interceptor.SerRequestAware 这个打字麻烦,省略,自己百度去