<html>
<body>
<%
String s="test";
%>${s}
</body>
</html>红色部分怎么不显示S的值呢? 如果我要表达出S的值该怎么写呢?
我不想用 request.setAttrabute 和session.
能直接取得吗?
谢谢

解决方案 »

  1.   

    既然你都说了Jstl了,当然可以取得啊,用c:out就可以了如果变量s存在session中就这么取
    <c:out value="${s}"/>如果变量s存在forward过来的request中就这么取
    <c:out value="${parar.s}">要用Jstl别忘记了引入它的Tag URI,另外加上<%@page isELIgnored="false"%>
      

  2.   

    我的意思是如果上面那样直接在<% %>里定义一个变量 不能直接用${S}获得吗
      

  3.   

    <c:set var="chat" value="xxxxxxx" />s只是一个变量, 没放request 和 session, 所以你那样是取不到的 ${} 总是在request session  甚至是application scope, 如果需要表明是哪个域可${sessionScope.s} 不知写错没有, 找JSTL文档看下吧, apache的应该有得下的
      

  4.   

    <html>
      <body>
        <%
          String s="test";
          request.setAttribute("str", s);
        %>
        ${str}
      </body>
    </html>
      

  5.   

    ${s} 此为EL表达式,EL有一个特点,如果想要用el表达式的话,那么 s 的值必须在作用域对象里:request,pagecontext,session,application,只有当s的值在以上4中的作用域对象里的时候,el表达式才能取到这个值。<%%>是你写的scriptlet,你并没有把 s 的值放到作用于对象里,当然娶不到了啊。