标签: jstl

我可以将一个变量从JSP scriptlet传递到JSTL,但不能从JSTL传递到JSP scriptlet而不会出错

以下代码导致错误:

 <c:set var="test" value="test1"/>
 <%
   String resp = "abc";
   resp = resp + test;
   pageContext.setAttribute("resp", resp);
 %>
 <c:out value="${resp}"/>
Run Code Online (Sandbox Code Playgroud)

错误说

"error a line 4: unknown symbol 'test'".
Run Code Online (Sandbox Code Playgroud)

如何test从JSTL代码传递到JSP scriptlet?

java jsp scope jstl scriptlet

50
推荐指数
2
解决办法
11万
查看次数

HTML-attribute中的JSTL if语句

是否有可能在JSTL中做这样的事情:

<div class="firstclass<c:if test='true'> someclass</c:if>">
   <p>some other stuff...</p>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法让它工作,或者是否有更好的方法通过查看JSTL-if语句来添加类?

css jsp jstl jsp-tags

49
推荐指数
2
解决办法
5万
查看次数

在HashMap中使用<c:forEach>

我有一个java类,它将servlet属性设置为HashMap对象:

request.setAttribute("types", da.getSecurityTypes());
Run Code Online (Sandbox Code Playgroud)

其中request是HttpServletRequest对象,并da.getSecurityTypes()返回一个HashMap对象.

有没有办法使用c:foreach或其他一些JSTL标签来浏览HashMap集合?

我刚在想:

 <c:forEach var="type" items="${types}">
                 ...
     </c:forEach>
Run Code Online (Sandbox Code Playgroud)

或者,如果无法完成,如何制作自定义标签来处理此问题?

在我的JSP页面中使用Java代码是我的最后手段,我想知道JSTL是否可以实现这一点.

谢谢,乔纳斯.

java jsp jstl

49
推荐指数
2
解决办法
8万
查看次数

使用<jsp:include>标记将参数传递给另一个JSP文件

我有一个JSP文件,在该文件中我包含另一个JSP文件:

<c:forEach var="instanceVar" items="${instanceList}">
    <c:set var="instance"><jsp:include page="instance.jsp"/></c:set>
    ...
</c:forEach
Run Code Online (Sandbox Code Playgroud)


在文件instance.jsp中我想使用一个变量instanceVar.我想用JSTL做.有没有办法做到这一点?

jsp jstl include

49
推荐指数
3
解决办法
7万
查看次数

绝对的uri:http://java.sun.com/jsp/jstl/core无法在web.xml或使用此应用程序部署的jar文件中解析

我使用的是JDK 1.7,Apache Tomcat 7.0.23,我在WEB_INF lib文件夹中放置了JSTL核心库(1.2)和STANDARD jar,它没有给我任何警告,但是当我尝试运行代码时

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- Create Bean Instance-->
<jsp:useBean id="listdomain" class="bean.PopulateMultiDomain" scope="session"></jsp:useBean>

<jsp:setProperty property="*" name="listdomain"/>

<c:forEach var="item" items="${listdomain.status}">
    <option>
        <c:out value="${item}" />
    </option>
</c:forEach> 
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:410)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:117)
    org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:311)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:152)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1425)
    org.apache.jasper.compiler.Parser.parse(Parser.java:138)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
Run Code Online (Sandbox Code Playgroud)

有谁能告诉我我犯的是什么错误?

apache jstl java-ee tomcat7

46
推荐指数
3
解决办法
12万
查看次数

java.lang.ClassNotFoundException:javax.servlet.jsp.jstl.core.Config

当我在输入URL后运行我的应用程序时,会出现此异常.我正在使用Eclipse和Tomcat7.0.35.我还添加了Jstl.jar和jstl1.2.jar

我的代码是

java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:91)
    at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:78)
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

jsf jstl classnotfoundexception

45
推荐指数
3
解决办法
12万
查看次数

如何使用JSP和JSTL替换换行符?

我有一个传递到我的JSP页面的bean对象列表,其中一个是注释字段.此字段可能包含换行符,我想使用JSTL用分号替换它们,以便可以在文本输入中显示该字段.我找到了一个解决方案,但它不是很优雅.我将在下面发布一个可能性.

string jsp replace newline jstl

44
推荐指数
4
解决办法
10万
查看次数

如何使用JSTL/EL从JSP调用参数化方法

如何使用JSTL/EL从JSP调用Java类中定义的参数的Java方法.该方法返回数组.可以使用任何返回值.

jsp jstl el parameter-passing methodexpression

44
推荐指数
2
解决办法
7万
查看次数

找不到"http://java.sun.com/jsp/jstl/core"的标记库描述符

我把它包含在我的JSP页面的最顶层:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Run Code Online (Sandbox Code Playgroud)

我已将JSTL JAR文件放在WEB-INF/lib目录中.但是,JSP仍然无法解析taglib.我得到以下错误:

找不到" http://java.sun.com/jsp/jstl/core " 的标记库描述符

我正在使用Eclipse Juno,项目结构如下所示:

在此输入图像描述

java eclipse tomcat jstl

44
推荐指数
4
解决办法
14万
查看次数

从基于JSTL的键的hashmap获取值

我想获得HashMap基于密钥的价值.

HashMap<String, ArrayList<String>> map 
    = new HashMap<String, ArrayList<String>>();
ArrayList<String> arrayList = new ArrayList<String>();

map.put("key", arrayList);
request.setAttribute("key", map);
Run Code Online (Sandbox Code Playgroud)

我做的是

<c:forEach var="map" items="${requestScope.key}">
    <c:forEach var="hash" items="${map.value}">
        <option><c:out value="${hash}"/></option>
    </c:forEach>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

但似乎它正在打印所有内容,我想要做的是获取价值取决于关键像:hash.key或者其他什么

更新:
我做了类似的事情,但它仍然无法正常工作

<c:forEach var="map" items="${requestScope.key}">
    <c:forEach var="hash" items="${map['key']}">
        <option><c:out value="${hash}"/></option>
    </c:forEach>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

和StackTrace:Property 'External' not found on type java.util.HashMap$Entry
我很确定真的有这样的关键.

java jsp jstl hashmap

44
推荐指数
1
解决办法
11万
查看次数