jstl 相关问题

JSTL(JSP标准标记库)是一个基于JSP的标准标记库,它提供标记来控制JSP页面中的流,日期/数字格式和国际化设施以及几个实用程序EL函数。

如何在 JSTL 中实现“instanceOf”

或者说获取类名或获取类型名 那么这可以在主要流行的 Web 容器/服务器上工作吗? 谢谢你。

回答 2 投票 0

评估空或 null JSTL c 标签

如何使用 JSTL 的 c 标签验证字符串是否为 null 或为空? 我有一个名为 var1 的变量,我可以显示它,但我想添加一个比较器来验证它。 如何使用 String 的 c 标签验证 JSTL 是否为空或为空? 我有一个名为 var1 的变量,我可以显示它,但我想添加一个比较器来验证它。 <c:out value="${var1}" /> 我想验证它何时为空或为空(我的值是字符串类型)。 如何使用 JSTL 的 c 标签验证字符串是否为 null 或为空? 您可以在 empty 中使用 <c:if> 关键字来实现此目的: <c:if test="${empty var1}"> var1 is empty or null. </c:if> <c:if test="${not empty var1}"> var1 is NOT empty or null. </c:if> 或者<c:choose>: <c:choose> <c:when test="${empty var1}"> var1 is empty or null. </c:when> <c:otherwise> var1 is NOT empty or null. </c:otherwise> </c:choose> 或者,如果您不需要有条件地渲染一堆标签,因此只能在标签属性内检查它,那么您可以使用 EL 条件运算符 ${condition? valueIfTrue : valueIfFalse}: <c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" /> 要了解有关这些 ${} 的更多信息(表达式语言,它是与 JSTL 不同的主题),请查看此处。 另请参阅: JSF 中的 EL 空运算符如何工作? 还要检查空白字符串,我建议遵循以下 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <c:if test="${empty fn:trim(var1)}"> </c:if> 它还处理空值 如果您仅检查 null 或空,那么您可以使用 with default 选项: <c:out default="var1 is empty or null." value="${var1}"/> 此代码是正确的,但如果您输入了大量空格 (' ') 而不是 null 或空字符串 返回错误。 要纠正此问题,请使用正则表达式(下面的代码检查变量是否为 null 或空或空白,与 org.apache.commons.lang.StringUtils.isNotBlank 相同): <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <c:if test="${not empty description}"> <c:set var="description" value="${fn:replace(description, ' ', '')}" /> <c:if test="${not empty description}"> The description is not blank. </c:if> </c:if> 这是一个衬里。 EL 中的三元运算符 ${empty value?'value is empty or null':'value is NOT empty or null'} 你可以使用 ${var == null} 或者。 下面是如何验证从 Java 控制器传递到 JSP 文件的 int 和 String 的示例。 MainController.java: @RequestMapping(value="/ImportJavaToJSP") public ModelAndView getImportJavaToJSP() { ModelAndView model2= new ModelAndView("importJavaToJSPExamples"); int someNumberValue=6; String someStringValue="abcdefg"; //model2.addObject("someNumber", someNumberValue); model2.addObject("someString", someStringValue); return model2; } 导入JavaToJSPExamples.jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <p>${someNumber}</p> <c:if test="${not empty someNumber}"> <p>someNumber is Not Empty</p> </c:if> <c:if test="${empty someNumber}"> <p>someNumber is Empty</p> </c:if> <p>${someString}</p> <c:if test="${not empty someString}"> <p>someString is Not Empty</p> </c:if> <c:if test="${empty someString}"> <p>someString is Empty</p> </c:if> In this step I have Set the variable first: <c:set var="structureId" value="<%=article.getStructureId()%>" scope="request"></c:set> In this step I have checked the variable empty or not: <c:if test="${not empty structureId }"> <a href="javascript:void(0);">Change Design</a> </c:if>

回答 8 投票 0

使用 JSTL 标签时出现 TagLibraryValidator 错误

我一直在 EclipseIDE 中练习 JSTL 标签,但代码抛出 HTTP Status 500 错误。 我正在尝试将 JSTL 标签集成到我的 .jsp 文件中,但我遇到了 TagLibraryValidator 错误....

回答 1 投票 0

无法在网页上显示请求的属性属性

我正在尝试从数据库获取数据并将其显示在网页上。 我期望包含实体数据的表,但是有这个: 我接下来有一些课程: 部门: 包实体; 导入 javax.persistence.*;

回答 2 投票 0

javax.servlet.jsp.JspTagException:'开始'< 0

javax.servlet.jsp.JspTagException:'开始'< 0 Once in a while you run into an error and you say: What the WHAT?? tagexception begin < 0. Seen this wonder before??

回答 2 投票 0

如何在Tomcat 10.1中使用JSTL错误:jakarta.tags.core无法识别[重复]

我知道Tomcat v10.1,指的是以下规格: 小服务程序6.0 JSP 3.1 EL 5.0 所以我的 Gradle 依赖项是: 依赖项{ 仅编译“jakarta.servlet:jakarta.servlet-api:6.0....

回答 1 投票 0

如何在 JakartaEE 中使用 JSTL 错误:jakarta.tags.core 无法识别

我知道Tomcat v10.1,指的是以下规格: 小服务程序6.0 JSP 3.1 EL 5.0 所以我的 Gradle 依赖项是: 依赖项{ 仅编译“jakarta.servlet:jakarta.servlet-api:6.0....

回答 1 投票 0

Gradle JakartaEE / Tomcat 10.1:如何使用 JSTL

我知道Tomcat v10.1,指的是以下规格: 小服务程序6.0 JSP 3.1 EL 5.0 所以我的 Gradle 依赖项是: 依赖项{ 仅编译“jakarta.servlet:jakarta.servlet-api:6.0....

回答 1 投票 0

jakarta.servlet.ServletException:java.lang.NoClassDefFoundError:javax / servlet / jsp / tagext / TagLibraryValidator

我正在尝试使用 JSTL 执行 JSP,但我无法执行。我有 Apache Tomcat 10,即 jakarta.servlet.* 而不是 javax.servlet.*。因此,每当我使用 JSTL 1.2.5 文件执行 Web 应用程序时,然后...

回答 4 投票 0

Spring Boot 面临 jstl (JSP) 问题[重复]

我正在使用 Spring boot 并遇到 jstl 问题,当我调用 jsp 页面时,它返回验证错误 [2m[nio-9090-exec-1][0;39m [36mo.a.c.c.C.[.[localhost].[/].[jsp] [0;39m [2m:[0;39m S...

回答 1 投票 0

获取JSP中当前文件名

有没有办法获取当前渲染的 JSP,使用 JSTL 还是 Struts(或不使用)?就像 Python 和 PHP 中的 _ _ file _ _ 一样?

回答 4 投票 0

根据 TLD,属性值对于标签 forEach 无效

我有这个代码 ... 它说: 根据 TLD,属性值对于标签 forEach 无效

回答 2 投票 0

如何访问jsp里面的<sql:query>结果集<script>

我正在尝试使用 FullCalendar 库来设计一个交互式日历,用户可以单击日期来查看相应的课程安排/活动。为此,我需要填充 t 中的事件...

回答 1 投票 0

关于访问对象中的键的 JSP 问题?

假设你有这样的东西: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 假设你有这样的东西: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <table> <c:forEach items="${products}" var="product"> <tr> <td>${product.name}</td> <td>${product.description}</td> </tr> </c:forEach> </table> 如何查看此 name 对象还有哪些其他键(例如键:description 或 "product")?我主要是一名 JavaScript 工程师,所以 JSP 对我来说仍然很陌生。 举例来说,我想要将 price 放入新的 <td> 中,但是 product.price 不起作用,而且我无法找出访问其真实名称的正确键。 尝试在网上寻找答案,但没有看到。 类似这样的东西是使用 JSTL 标记的 JSP 代码片段。 JSTL 在其标签中大量使用 EL 表达式。这是代码中的 <c:forEach> 标签。即使定义了整个 JSP 页面,您也可能不知道其中使用的属性。如果您尝试在浏览器中访问此类页面,则会失败并显示空内容或返回 404 错误代码。如果您的 JSP 页面位于 WEB-INF 文件夹下,则确定最后一种情况。 什么原因仍然无法访问视图目录中的JSP页面? 事实是WEB-INF是服务器上的受保护目录;从外部访问文件是不可能的。应用程序可以将其文件存储在此目录中,以确保用户无法访问它们。这主要适用于配置文件和其他内部文件。一些 MVC 框架中的 JSP 文件开始放置在那里,以限制绕过控制器对视图的直接访问。同样的事情也适用于使用调度程序实现 MVC 模式的 servlet。由于这些JSP如果没有在控制器上初始化就无法运行,直接访问这些页面会抛出异常。 初始化由控制器执行的 JSP 页面,其中准备好所有属性并将其放入 JSP 范围中。一旦“准备好”显示,控制器就会使用调度程序将其请求转发到 JSP 页面。所有属性都转移到新请求中,并且可以通过 JSTL 标记中的 EL 表达式找到。因此,您应该查看控制器代码以查找它作为属性传递给 JSP 的对象。通常控制器不关心对象结构,因为它将它们保存为 Object。 EL 表达式使用内省机制来研究对象并找出其属性。

回答 1 投票 0

<c:import var="lib" url="someURL.xml"/> 未将 xml 内容保存在 var 变量中导致 <x:parse/> 没有任何内容可读取

发现这个问题在其他论坛问过两次,都是12年前,都没有答案 可悲的是我的问题(因为没有答案)完全相同。 当我使用 发现这个问题在其他论坛问过两次,都是12年前,但都没有答案 可悲的是我的问题(因为没有答案)完全相同。 当我使用 <c:import var="lib" url="someURL.xml"/> 内容未保存在 var lib 中,因此导致第一行出现文件过早结束错误,因为没有任何内容可读取。 浏览器将显示 XML 文档的内容,但在使用 调用时不会将其保存到变量中 我是新手,在这次神秘冒险中我已经学到了很多东西。 提前致谢,任何关于该走哪条路的线索,或者我可能缺少的某种配置,将不胜感激。 谢谢大家 我设法找到了问题的解决方案,这是一个配置问题,我不知道该怎么做。 所以我改变了我的方法,尝试做一些不同的事情,将服务器更改为 Tomcat 9.0 并使用以下库。 taglibs-standard-impl-1.2.5.jar taglibs-standard-jsttel-1.2.5.jar taglibs-standard-spec-1.2.5.jar 序列化器-2.7.1.jar xalan-2.7.1.jar 使用了以下标签: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %> 这工作得很好,也许有一天我能够找出 tomcat 10.1 和 jakarta 3.0.0 出了什么问题。 感谢您的所有回答{:D!

回答 1 投票 0

无法找到 URI 的 taglib [c]:[jakarta.tags.core] Tomcat 10.1.x

迁移到 spring 6.0.11 和 tomcat 10.1.13 后,我们开始遇到 jstl 和 jsp 的问题。 根据雅加达标准标签库3.0文档,我已经更改了al...中的taglib uri...

回答 1 投票 0

java.lang.ClassNotFoundException:javax.servlet.jsp.jstl.sql.SQLExecutionTag

这可能是一个菜鸟问题,但我陷入了这个错误。我正在使用 Tomcat 7.0.34 WebContent/WEB-INF/lib jstl-1.2-sources.jar jstl-1-2.jar mysql-连接器-java-5.1.31 下面...

回答 3 投票 0

IntelliJ 中的 JSTL 在 JSP 中给出错误

我正在 IntelliJ 中使用 Google App Engine。我正在尝试在 JSP 中使用 JSTL 标记。我尝试了在互联网上找到的两个不同的 URI,但它们都给出了错误: <%@ taglib prefix...

回答 5 投票 0

JSTL 在 forEach 循环中递增日期字符串

我在 JSTL 中有这个 forEach 循环。日期字符串的格式为 MM/dd/yyyy,在 for 循环的末尾,我想每次将日期加 1。 我在 JSTL 中有这个 forEach 循环。日期字符串的格式为 MM/dd/yyyy,在 for 循环的末尾,我想每次将日期增加 1。 <c:set var="currentDate" value="${param.STARTDATE}"/> <c:forEach begin="1" end="7" varStatus="loop"> <!-- Doing other stuff with the date as a string here --> <c:set var="nextDay" value="currentDate + someDateCalculation" /> <c:set var="currentDate" value="${nextDay}" /> </c:forEach> 您可以使用类 LocalDateTime 从参数中解析日期字符串,然后将其转换为 LocalDate。然后您可以使用它的 API 增加一天。如果您想将日期用作字符串,那么您应该使用格式化程序使用指定的模式对其进行格式化。 <c:set var="currentDate" value="${LocalDateTime.parse(param.STARTDATE, DateTimeFormatter.ofPattern("MM/dd/yyyy"))}" /> <c:forEach begin="1" end="7" varStatus="loop"> <!-- Doing other stuff with the date as a string here --> <c:set var="currentDateAsString" value="${currentDate.format(DateTimeFormatter.ofPattern("MM/dd/yyyy"))}" /> <!-- Increment a current date by 1 day --> <c:set var="currentDate" value="${currentDate.plusDays(1)}" /> </c:forEach>

回答 1 投票 0

如何将布尔值表示为“是”或“否”?

如何使用 JSP 和 JSTL 将 true 和 false 替换为 yes 或 no? 我的表中有值 TRUE 和 FALSE。 我希望当我在 jsp 页面上使用 jstl 检索这些值时,true false 将重新...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.