我在action处理类里想从jsp页面获得传参,想和servlet里面一样去request.getParameter("id"),但request在action里引进不成。

解决方案 »

  1.   

    那是因为没有该参数呀,而struts1中有个HttpServletRequest参数,直接参考struts2文档吧
      

  2.   

    ServletActionContext.getRequest().getParameter("id");
      

  3.   

    ServletActionContext.getRequest().getParameter("id");或者在你Action里直接定义一个成员变量id
      

  4.   

    HttpServletRequest request = ServletActionContext.getRequest();
      

  5.   

    Struts2里面直接定义一个同名的就能得到
      

  6.   


    public class AskById extends BaseAction implements Action { private long id; public long getId() {
    return id;
    } public void setId(long id) {
    this.id = id;
    } public String execute() throws Exception{
    return SUCCESS;
    }

    }
    JSP中直接用${id}获取
      

  7.   

    request.getParameter("id"),还要进行强制类型转换
    在action中定义一个 private int id;然后生成get,set方法
    action会自动将页面传过来的id set到action中的id里面
      

  8.   

    直接可以ServletActionContext.getRequest();
    不久可以了?
      

  9.   

    两种方式:访问Web元素:request,session,application,HttpServletRequest,HttpSession,ServletContext
      *方式一:
       依赖于容器获取Map类型的request,session,application
    <>在action中定义:private Map request;
      private Map session;
      private Map application;
    <>可以在构造器里面或者其他地方用一下方法获取这三个元素:
    request = (Map)ActionContext.getContext().get("request");
    session = ActionContext.getContext().getSession();
    application = ActionContext.getContext().getApplication();
      [Debug]里面的Action Context中可以查看到
    <>我们获取的虽然都是Map,但是我们通过put方法将键值对存入Map之后,struts2
      会帮助我们和HttpRequest对象建立起联系,将值存入HttpRequest对象   
    <>前台页面访问形式:<s:property value="#request.key"/>
      如果用<s:property value="#attr.key"/>可访问这三个对象中的值  *方式二:
         IoC获取Map类型的request,session,application
         IoC-Inverse of Control控制反转
         DI-Dependency Injection依赖注入
       <>action类中实现三个接口:RequestAware,SessionAware,ApplicationAware
         让action知道这三个对象的存在,并且要实现三个方法;
       2>在action中定义三个Map,加上范型:
       private Map(String,Object) request;
    private Map session;
    private Map application;

      *方式三:
         依赖于容器获取HttpServletRequest,HttpSession,ServletContext对象
       <>在Action类中声明三个属性:
       private HttpServletRequest request;
       private HttpSession session;
       private ServletContext application;
       <>用如下方法可以获得这三个对象:
       request = ServletActionContext.getRequest();
       session = request.getSession();
       application = session.getServletContext();
      
      *方式四:
       IoC获取HttpServletRequest,HttpSession,ServletContext对象
       1>Action类实现ServletRequestAware接口,实现接口中的方法
       2>在Action中定义:
       private HttpServletRequest request;
       private HttpSession session;
       private ServletContext application;
      

  10.   

    ServletActionContext.getRequest()  就可以获得Request 了
      

  11.   

    首先建议你去查官方文档:
    其实有很多方法获得request对象,这是其中一种
        public class Test extends ActionSupport {         private HttpServletRequest request;        public void excute() {
                  request = ServletActionContext.getRequest();
            }
       }
      

  12.   

    这中类型的问题,你自己都不上google搜搜,就来论坛问 ! 很浪费时间,因为google一下 网上很多答案的。先google下,如果真找不到答案倒是可以来论坛里面发帖问问, 这里只是建议你修改一下你解决问题的思路。没有恶意 
      

  13.   

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;    //在要用request的地方:
        HttpServletRequest request = ServletActionContext.getRequest();
        //HttpServletResponse response = ServletActionContext.getResponse();
        //HttpSession session = request.getSession();    //在这里 和servlet里面一样去request.getParameter("id"),
      

  14.   

    ServletActionContext 或者继承ActionSupport
      

  15.   

    package org.sunxin.struts2.ch03.action;import org.sunxin.struts2.ch03.model.User;
    import com.opensymphony.xwork2.Action;public class LoginAction implements Action
    {
    private User user; @Override
    public String execute() throws Exception
    {
    if("zhangsan".equals(user.getUsername()) && "1234".equals(user.getPassword()))
    return SUCCESS;
    else
    return ERROR;
    } public User getUser()
    {
    return user;
    } public void setUser(User user)
    {
    this.user = user;
    }
    }