谢谢帮忙啊
struts2   输出页面上  ${requestScope.username }取不到值 
但是 <%=request.getParameter("username") %>能取到
我看视频上是用${requestScope.username }取到值的 他们俩哪儿不一样吗?

解决方案 »

  1.   

    ${requestScope.username }是从request范围取值。<%=request.getParameter("username") %>是从url中取得参数值。
      

  2.   

    getParameter这个说的不对,它是取的请求参数 ,也就是url后面的参数或者是post的参数, 不局限于url
    requestScope取的是request的属性, 相当于request.getAttribute. 明白了吗.?
      

  3.   


    private String username;
    private String password;
    public String execute(){
    System.out.println("execute..");

    HttpServletRequest request = ServletActionContext.getRequest();  
    request.setAttribute("request", "request");
    HttpSession session = request.getSession();
    session.setAttribute("session", "session");
    return "success";
    }
    get 方法和set省略了     我想要在页面上通过 EL表达式获得usernam和password的值
    页面的代码 <body>
    username:${requestScope.username }
    <br>
    password:${requestScope.password }
    <br>
    request:<%=request.getAttribute("request")%><br>
    session:<%=session.getAttribute("session")%><br>
    <%=request.getParameter("username")%>
    <br>
    $request:${requestScope.request }
    <br>
    $session:${requestScope.session }
    <br>
    </body>
    输出不对啊   EL表达式怎么都获取不到值username:${requestScope.username } 
    password:${requestScope.password } 
    request:request
    session:session
    fdfd 
    $request:${requestScope.request } 
    $session:${requestScope.session }
    第一次问问题  不会贴代码   谢谢了哈
      

  4.   

    我知道了  要在JSP页面加上 <%@ page isELIgnored="false" %> 才能用EL表达式  好像和WEB.XML版本有关系
      

  5.   

    用el取Struts2的Action的属性是不地道的.!  正宗的搞法用OGNL表达式,用el也可以是因为StrutsRequestWrapper的原因.!
    访问Action的时候,Action会被压入ValueStack栈顶,所以我们正宗访问Action属性的方式应该是用<s:property>,而存应该存到OGNL Context,  我觉得如果你用Struts2还在request.set的话,  那你真不如用Servlet
      

  6.   

    哦  学习到了~    request.set是用来测试的。~  非常感谢~