以下代码导致错误:
<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?
是否有可能在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语句来添加类?
我有一个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是否可以实现这一点.
谢谢,乔纳斯.
我有一个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做.有没有办法做到这一点?
我使用的是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)
有谁能告诉我我犯的是什么错误?
当我在输入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) 我有一个传递到我的JSP页面的bean对象列表,其中一个是注释字段.此字段可能包含换行符,我想使用JSTL用分号替换它们,以便可以在文本输入中显示该字段.我找到了一个解决方案,但它不是很优雅.我将在下面发布一个可能性.
如何使用JSTL/EL从JSP调用Java类中定义的参数的Java方法.该方法返回数组.可以使用任何返回值.
我把它包含在我的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,项目结构如下所示:
我想获得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
我很确定真的有这样的关键.