jstl 标签的问题

maodie007 2008-04-18 08:10:14
<html>
<body>
<%
String s="test";
%>

${s}
</body>
</html>

红色部分怎么不显示S的值呢? 如果我要表达出S的值该怎么写呢?
我不想用 request.setAttrabute 和session.
能直接取得吗?
谢谢
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
junny9985 2008-04-19
  • 打赏
  • 举报
回复
${s} 此为EL表达式,EL有一个特点,如果想要用el表达式的话,那么 s 的值必须在作用域对象里:request,pagecontext,session,application,只有当s的值在以上4中的作用域对象里的时候,el表达式才能取到这个值。

<%%>是你写的scriptlet,你并没有把 s 的值放到作用于对象里,当然娶不到了啊。
  • 打赏
  • 举报
回复
<html>
<body>
<%
String s="test";
request.setAttribute("str", s);
%>
${str}
</body>
</html>
Ant 2008-04-18
  • 打赏
  • 举报
回复
既然你都说了Jstl了,当然可以取得啊,用c:out就可以了

如果变量s存在session中就这么取
<c:out value="${s}"/>

如果变量s存在forward过来的request中就这么取
<c:out value="${parar.s}">

要用Jstl别忘记了引入它的Tag URI,另外加上<%@page isELIgnored="false"%>
dreamhyz 2008-04-18
  • 打赏
  • 举报
回复
为什么要那要获取,声明为全局的,直接用不就可以了吗
zealVampire 2008-04-18
  • 打赏
  • 举报
回复
<c:set var="chat" value="xxxxxxx" />

s只是一个变量, 没放request 和 session, 所以你那样是取不到的 ${} 总是在request session 甚至是application scope, 如果需要表明是哪个域可${sessionScope.s} 不知写错没有, 找JSTL文档看下吧, apache的应该有得下的
小南瓜瓜 2008-04-18
  • 打赏
  • 举报
回复
晕~这样也可以?
cpoysy 2008-04-18
  • 打赏
  • 举报
回复
不可以.
maodie007 2008-04-18
  • 打赏
  • 举报
回复
我的意思是如果上面那样直接在<% %>里定义一个变量 不能直接用${S}获得吗

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧