【问题标题】:jstl tag on Oracle AS 10gOracle AS 10g 上的 jstl 标记
【发布时间】:2014-07-02 10:01:55
【问题描述】:

我在 Oracle AS 10g 上的 JSP 中使用 jstl 时遇到问题。这里的问题是 c:out 不适用于 scriptlet 变量。在jsp中我有这样的东西:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ page import="java.io.*"%>
...
<%
String ERROR = request.getParameter("ERROR");
%>
...

(注意我必须使用http://java.sun.com/jstl/core 而不是http://java.sun.com/jsp/jstl/core - 这对我不起作用)。 现在我尝试用 c:out 标签打印出来:

<p style="color: #FF1A00"><c:out value="<%=ERROR%>" /></p>

但它不起作用。它将 打印为红色文本。我尝试更改 web.xml 标记以在此标记中包含版本号和其他定义,但这不起作用。

我要做的就是将此变量设置为页面上下文并从中打印出来

<%
pageContext.setAttribute("ERROR", ERROR);
%>
...
<p style="color: #FF1A00"><c:out value="${ERROR}" /></p>

谁能解释一下这里有什么问题以及为什么我不能使用“ />”?

提前致谢。

【问题讨论】:

  • w为什么你在jstl里面使用scriplets使用cout这样&lt;c:out value="${ERROR}" /&gt;

标签: java oracle jsp oracle10g jstl


【解决方案1】:

你需要了解scriptlet和jstl的区别

小脚本:

scriptlet 转化为 Java 代码,在调用 JSP 的服务方法时编译。

JSTL 标签:

属性,默认情况下在页面上下文级别范围内。 因此,如果您需要将 scriptlet 中的值传递给 jstl,您可以通过在适当范围的对象(通常是 pageContext 和 request)上调用 setAttribute() 方法来实现

JSTL 完全适用于范围属性,无论是在页面、请求还是会话范围

所以看这里How to avoid Java code in JSP files?

希望对你有帮助!!

【讨论】:

  • 现在我明白了。谢谢解释!
  • 欢迎 :) 乐于助人
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多