Tag: jstl

检查属性存在于JSP中

我有一些扩展超类的类,在JSP中,我想显示这些类的一些属性。 我只想做一个JSP,但事先不知道对象是否有属性。 所以我需要一个JSTLexpression式或者一个标签来检查我传递的对象是否有这个属性(类似于javascript中的操作符,但是在服务器中)。 <c:if test="${an expression which checks if myAttribute exists in myObject}"> <!– Display this only when myObject has the atttribute "myAttribute" –> <!– Now I can access safely to "myAttribute" –> ${myObject.myAttribute} </C:if> 我怎样才能得到这个? 谢谢。

JSTL与JSP Scriptlets

我想在这个问题上有人解释一下BlausC的惊人答案。 他说,脚本有一些缺点,它们是: 可重用性:您不能重用脚本。 我的问题是:我如何重用JSTL代码? 可replace性:您不能使脚本抽象化。 抽象是什么意思,JST如何变得抽象? OO:你不能使用inheritance/组合。 我怎样才能在JSTL中使用面向对象的范例? debugging:如果一个scriptlet中途抛出一个exception,你得到的只是一个空白页面。 可testing性:脚本不能被unit testing。 这意味着什么,JSTL如何进行unit testing? 可维护性:每个saldo需要更多的时间来维护混合/混乱/重复的代码逻辑。 这是什么意思? 最后一件事是他引用Oracle的build议: JSP脚本不应该用于编写业务逻辑。 在MVC模式中,我仅在表示层中使用scriptlet。 他在这里是什么意思?

javax.servlet.jsp.PageContext无法parsing为types

我在我的jsp页面看到下面的错误 – javax.servlet.jsp.PageContext cannot be resolved to a type javax.servlet.jsp.JspException cannot be resolved to a type 我已经看到了这个post,并尝试了一些build议的东西。 BalusC提供了很好的input–JSTL1.2和Standard.jar不能一起使用。 我做了这个,并且解决了这个问题 – 但是它正在重现。 我不确定是否有更多的瓶子碰撞。 我已经将所有的jar定义为Maven中的依赖项。 下面是我指定的pom.xml的依赖关系 – <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.38</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> […]

我如何使用JSP和JSTLreplace换行符?

我有一个bean对象的列表传入我的JSP页面,其中一个是注释字段。 这个字段可能包含换行符,我想使用JSTL用分号replace它们,以便字段可以显示在文本input中。 我find了一个解决scheme,但不是很优雅。 我会在下面发帖作为一种可能性。

从hashmap中获取基于JSTL密钥的值

我想获得基于密钥的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); 我做的是 <c:forEach var="map" items="${requestScope.key}"> <c:forEach var="hash" items="${map.value}"> <option><c:out value="${hash}"/></option> </c:forEach> </c:forEach> 但它似乎是打印的一切,我想要做的是得到的价值取决于关键如: 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> 而Property 'External' not found on type java.util.HashMap$Entry StackTrace: Property 'External' not found on […]

JSTL if语句在HTML属性中

是否有可能在JSTL中这样做: <div class="firstclass<c:if test='true'> someclass</c:if>"> <p>some other stuff…</p> </div> 有没有办法让这个工作,或者有一个更好的方式来添加一个类,通过查看一个JSTL-if语句?

我可以将JSP scriptlet中的variables传递给JSTL,但不能将JSTL中的variables传递给JSP scriptlet

以下代码会导致一个错误: 1. <c:set var="test" value="test1"/> 2. <% 3. String resp = "abc"; 4. resp = resp + test; 5. pageContext.setAttribute("resp", resp); 6. %> 7. <c:out value="${resp}"/> 错误说 "error a line 4: unknown symbol 'test'". 如何将test从JSTL代码传递到JSP脚本?

如何在JSTL中循环指定的次数?

我需要在JSTL中的一个while循环。 我似乎无法find如何遍历指定次数的东西。 任何想法我可以做到这一点? 我想我可以使用forEach,但我真的不想循环收集。

如何用JSTLselect一个集合的第一个元素?

我设法使用下一个代码,但必须有一个更简单的方法。 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <c:if test="${fn:length(attachments) > 0}"> <c:forEach var="attachment" items="${attachments}" varStatus="loopCount"> <c:if test="${loopCount.count eq 1}"> attachment.id </c:if> </c:forEach> </c:if>

如何访问JSP中的请求属性?

目前我使用: <% final String message = (String) request.getAttribute ("Error_Message"); %> 接着 <%= message %> 但是,我想知道是否可以使用EL或JSTL而不是使用scriptlet。