JSTL(JSP标准标记库)是一个基于JSP的标准标记库,它提供标记来控制JSP页面中的流,日期/数字格式和国际化设施以及几个实用程序EL函数。
我遇到了一些奇怪的错误:当我第一次在某些浏览器中打开页面时,所有引用都有 jsessionid 参数(如)。 当我预...
我有一个带有表格的页面。 注意 代码,它适用于 i18n: 我有一个带有表格的页面。 注意 <spring:message> 代码,它适用于 i18n: <form method="GET" action="getData"> <b><p align="center" ><spring:message code="block_1"/></p></b> <table align="center" class="main-table" border="10"> <tr> <th colspan="4"><spring:message code="subblock_1.1"/></th> </tr> <tr> <th><spring:message code="in_order"/></th> <th><spring:message code="evaluation_criterion"/></th> <th><spring:message code="number_of_points"/></th> <th><spring:message code="answer"/></th> </tr> <tr><td class="column">1</td><td><spring:message code="paragraph_1_1_1"/></td><td>10,00</td> <td> <input type="checkbox" unchecked name=""paraghaph_1_1_1" value="10.00"> </td> </tr> <tr><td class="column">2</td><td><spring:message code="paragraph_1_1_2"/></td><td>9,00</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_2" value="9.00"></td> </tr> <tr><td class="column">3</td><td><spring:message code="paragraph_1_1_3"/></td><td>8,55</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_3" value="8.55"></td> </tr> <tr><td class="column">4</td><td><spring:message code="paragraph_1_1_4"/></td><td>8,15</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_4" value="8.15"></td> </tr> <tr><td class="column">5</td><td><spring:message code="paragraph_1_1_5"/></td><td>7,20</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_5" value="7.20"></td> </tr> <tr><td class="column">6</td><td><spring:message code="paragraph_1_1_6"/></td><td>6,25</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_6" value="6.25"></td> </tr> <tr><td class="column">7</td><td><spring:message code="paragraph_1_1_7"/></td><td>5,80</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_7" value="5.80"></td></tr> <tr><td class="column">8</td><td><spring:message code="paragraph_1_1_8"/></td><td>5,55</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_8" value="5.55"></td></tr> <tr><td class="column">9</td><td><spring:message code="paragraph_1_1_9"/></td><td>4,50</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_9" value="4.5"></td></tr> <tr><td class="column">10</td><td><spring:message code="paragraph_1_1_10"/></td><td>4,25</td> <td><input type="checkbox" unchecked name="1.1.10" value="4.25"></td></tr> <tr><td class="column">11</td><td><spring:message code="paragraph_1_1_11"/></td><td>3,55</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_1" value="3.55"></td></tr> <tr><td class="column">12</td><td><spring:message code="paragraph_1_1_12"/></td><td>2,55</td> <td> <input type="checkbox" unchecked name="paraghaph_1_1_12" value="2.55"> </tr> <tr><td class="column">13</td><td><spring:message code="paragraph_1_1_13"/></td><td>0,25</td> <td><input type="text" name="paraghaph_1_1_13"></td></tr> <tr><td class="column">14</td><td><spring:message code="paragraph_1_1_14"/></td><td>0,15</td> <td><input type="text" name="paraghaph_1_1_14"></td></tr> <tr><td class="column">15</td><td><spring:message code="paragraph_1_1_15"/></td><td>-1,00</td> <td><input type="text" name="paraghaph_1_1_15"></td></tr> </table> </form> 并且有一个实体Paragraph,通过它我想要一个List<Paragraph>并将其插入到数据库id。 @Entity @Table(name = "paraghaph") public class Paragraph { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column private long id_paragraph; @Column String name; @Column String score; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "id_subblock") public Subblock subblock; @OneToMany(cascade = CascadeType.ALL) @JoinColumn(name = "id_paragraph") public List<Rating> ratings; /* some getters and setters*/ 我试图通过响应正文来完成此操作,但 HTML 标签 <tr>、<td> 没有属性 name,我可以在其上使用 Paragraph 进行映射。 所以我的问题是: 如何获取所有表格内容(或者输入不是null的内容)? 要将内容返回到表中,最好使用 JSTL/core,或者是否可以使用 @RequestBody 或 RequestEntity? (请举个例子) 如果返回 @ResponseBody,那么您应该在浏览器客户端使用 JavaScript 渲染表格。适当的媒体类型用于序列化返回的对象。 如果返回一个视图(例如 jsp),则模型属性包含 jsp 模板呈现的数据。 jsp 模板由配置的视图解析器返回。 您可以在此处找到示例 使用 Spring MVC 提供 Web 内容。 下一个示例是处理表单提交。
我有一个带有表格的页面。 注意 代码,它适用于 i18n: 我有一个带有表格的页面。 注意 <spring:message> 代码,它适用于 i18n: <form method="GET" action="getData"> <b><p align="center" ><spring:message code="block_1"/></p></b> <table align="center" class="main-table" border="10"> <tr> <th colspan="4"><spring:message code="subblock_1.1"/></th> </tr> <tr> <th><spring:message code="in_order"/></th> <th><spring:message code="evaluation_criterion"/></th> <th><spring:message code="number_of_points"/></th> <th><spring:message code="answer"/></th> </tr> <tr><td class="column">1</td><td><spring:message code="paragraph_1_1_1"/></td><td>10,00</td> <td> <input type="checkbox" unchecked name=""paraghaph_1_1_1" value="10.00"> </td> </tr> <tr><td class="column">2</td><td><spring:message code="paragraph_1_1_2"/></td><td>9,00</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_2" value="9.00"></td> </tr> <tr><td class="column">3</td><td><spring:message code="paragraph_1_1_3"/></td><td>8,55</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_3" value="8.55"></td> </tr> <tr><td class="column">4</td><td><spring:message code="paragraph_1_1_4"/></td><td>8,15</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_4" value="8.15"></td> </tr> <tr><td class="column">5</td><td><spring:message code="paragraph_1_1_5"/></td><td>7,20</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_5" value="7.20"></td> </tr> <tr><td class="column">6</td><td><spring:message code="paragraph_1_1_6"/></td><td>6,25</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_6" value="6.25"></td> </tr> <tr><td class="column">7</td><td><spring:message code="paragraph_1_1_7"/></td><td>5,80</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_7" value="5.80"></td></tr> <tr><td class="column">8</td><td><spring:message code="paragraph_1_1_8"/></td><td>5,55</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_8" value="5.55"></td></tr> <tr><td class="column">9</td><td><spring:message code="paragraph_1_1_9"/></td><td>4,50</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_9" value="4.5"></td></tr> <tr><td class="column">10</td><td><spring:message code="paragraph_1_1_10"/></td><td>4,25</td> <td><input type="checkbox" unchecked name="1.1.10" value="4.25"></td></tr> <tr><td class="column">11</td><td><spring:message code="paragraph_1_1_11"/></td><td>3,55</td> <td><input type="checkbox" unchecked name="paraghaph_1_1_1" value="3.55"></td></tr> <tr><td class="column">12</td><td><spring:message code="paragraph_1_1_12"/></td><td>2,55</td> <td> <input type="checkbox" unchecked name="paraghaph_1_1_12" value="2.55"> </tr> <tr><td class="column">13</td><td><spring:message code="paragraph_1_1_13"/></td><td>0,25</td> <td><input type="text" name="paraghaph_1_1_13"></td></tr> <tr><td class="column">14</td><td><spring:message code="paragraph_1_1_14"/></td><td>0,15</td> <td><input type="text" name="paraghaph_1_1_14"></td></tr> <tr><td class="column">15</td><td><spring:message code="paragraph_1_1_15"/></td><td>-1,00</td> <td><input type="text" name="paraghaph_1_1_15"></td></tr> </table> </form> 并且有一个实体Paragraph,通过它我想要一个List<Paragraph>并将其插入到数据库id。 @Entity @Table(name = "paraghaph") public class Paragraph { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column private long id_paragraph; @Column String name; @Column String score; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "id_subblock") public Subblock subblock; @OneToMany(cascade = CascadeType.ALL) @JoinColumn(name = "id_paragraph") public List<Rating> ratings; /* some getters and setters*/ 我试图通过响应正文来完成此操作,但 HTML 标签 <tr>、<td> 没有属性 name,我可以在其上使用 Paragraph 进行映射。 所以我的问题是: 如何获取所有表格内容(或者输入不是null的内容)? 要将内容返回到表中,最好使用 JSTL/core,或者是否可以使用 @RequestBody 或 RequestEntity? (请举个例子) 如果返回 @ResponseBody,那么您应该在浏览器客户端使用 JavaScript 渲染表格。适当的媒体类型用于序列化返回的对象。 如果返回一个视图(例如 jsp),则模型属性包含 jsp 模板呈现的数据。 jsp 模板由配置的视图解析器返回。 您可以在此处找到示例 使用 Spring MVC 提供 Web 内容。 下一个示例是处理表单提交。
java.lang.IllegalArgumentException:已在 JSP 中使用 <display:table> 将 null 比较器传递给 RowSorter
我有一些这样的代码: 从任务中选择* 我有一些这样的代码: <sql:query var="task_work"> Select * from tasks </sql:query> <display:table name="${task_work.rows }" sort="list" id="small_jobs" export="false" class="tableoutput" defaultsort="1" defaultorder="ascending"> <!-- Here, I want to use a `c:when` or `c:if` tag to ask for permission, if it's `false`, then don't show columns, if `true` then show --> <c:choose> <c:when test="<%=AskForPermission( ((TreeMap<?,?>)pageContext.getAttribute("small_jobs")).get("permission").toString() )%>"> <display:column title="End">${small_jobs.name}</display:column> <display:column title="End">${small_jobs.description}</display:column> </c:when> <c:otherwise> </c:otherwise> </c:choose> </display:table> 但我收到此错误: 路径 [/guh] 上下文中 servlet [jsp] 的 Servlet.service() 抛出 异常 [java.lang.IllegalArgumentException: 空比较器有 已传递给 RowSorter。需要一个具有 root 的比较器实例] 导致 java.lang.IllegalArgumentException: 空比较器已被 传递给行排序器。需要一个比较器实例 我尝试了c:if标签和c:when标签,外部和内部<display:table>。 当你没有权限时,你的代码相当于: <display:table name="${task_work.rows }" (...) defaultsort="1"> </display:table> 这会产生异常A null comparator has been passed to RowSorter。 问题似乎出在displaytag库中,当设置了defaultSort并且没有定义display:column时,它会失败。 我不知道这是预期的行为还是库的错误。 有几种方法可以避免这个问题: 没有权限时请确保至少有一栏 删除defaultSort选项 将 c:choose 移到 display:table 标签之外 <c:if test="(...)"> <display:table (...) defaultsort="1" > <display:column title="End">(...)</display:column> <display:column title="End">(...)</display:column> </display:table> </c:if>
如何在 JSP 中的 <c:forEach> 标记中迭代 <select> 标记时从任何列表对象中删除元素?
如何在 JSP 中的 标记中迭代 标记时从任何列表对象中删除元素? JSP 中的示例代码: 选择...
我需要打印出当年的文本。 我的代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib
虽然我知道 JSP 支持存在一些限制,但我想在 Spring Boot Web 应用程序中使用带有 JSTL 标签的 JSP。 我的 JSP 文件的摘录: <%@ page pageEncoding="UTF-8"%>...
Scriptlet 和 EL 在 JSP 中呈现为文本(未编译)
我在 JSP 页面中包含标签库和使用表达式语言时遇到问题。 JSP 不希望计算表达式并像简单文本一样返回它们。 例如,如果 JSP 内容 &...
Scriptlet 和 EL 在 JSP 中呈现为文本(未编译)
我在 JSP 页面中包含标签库和使用表达式语言时遇到问题。 JSP 不希望计算表达式并像简单文本一样返回它们。 例如,如果 JSP 内容 &...
JSP 表达式在 JSTL 标签中工作,但在 Struts 2 标签中不起作用
我在我的项目中使用 JSTL 和 Struts 2。我尝试使用 JSTL 和 Struts 2 标记在范围内设置一个值,如下所示: ... 我在我的项目中使用 JSTL 和 Struts 2。我正在尝试使用 JSTL 和 Struts 2 标签在范围内设置一个值,如下所示: <div id="id1"></div> <div id="id2"></div> <% int b=10; %> <c:set var="test2" value="<%= b %>"/> <s:set var="test3" value=" <%=b%>" /> <script> document.getElementById("id1").innerHTML="${test2}"; //10 document.getElementById("id2").innerHTML="${test3}"; //nothing is displayed. </script> 输出仅为10。我的疑问是为什么表达式 <%= b %> 在 <c:set> 标签中有效,而在 <s:set> 标签中不起作用? Struts 标签不允许在标签属性中使用脚本。不过你可以试试 <s:set var="test3"><%=b%></s:set>
Apache Tomcat 9.0.96 JSTL c:out 不再转义文本并且行为不一致
自 2024 年 10 月 8 日发布的 Apache Tomcat servlet 容器 9.0.96 版本以来,c:out 标记的行为有所不同,看起来像是一个潜在的安全问题(代码注入?) 看起来我...
如何与 EL 表达式中的 JavaScript 变量进行比较?
在.jsp文件中: 字符串id =“S”; 在 .jsp 文件中: <script> String id = "S"; </script> <c:choose> <c:when test="${detail.status==id}"> </c:when> <c:otherwise> </c:otherwise> </c:choose> JavaScript 和 Java 代码运行在不同的计算机上。您不能同时使用两者。 如果您在服务器上将变量定义到 jsp 中的任何其他范围 request.setAttribute("id", "S"); 然后就可以使用了 <script> String id = ${id}; </script>
<table> <c:if test="${output.list == nul}"> <tr><td><input type="text" /><select></select><input type="text" /> </td> </tr> </c:if> <c:forEach var="iter" items="${output.list}"> <tr><td><input type="text" /><select></select><input type="text" value="${iter.getVal()}" /> </td> </tr> </c:forEach> </tbody> </table> 如果我的${list}为空,如何在不重复代码或不使用JavaScript的情况下显示.clone行? 我不知道我是否理解你的问题。如果你想输出一行包含所有内容,当列表为空时,尝试下一种方法: <table> <c:forEach var="i" begin="0" end="${not empty list?(fn:length(list)-1):0}"> <tr class="clone"> <td> <input type="text" /> <select></select> <input type="text" value="${list[i]!=null?list[i].getVal():''}" /> </td> </tr> </c:forEach> </tbody> 要使用 fn: 命名空间,只需在文件开头添加 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 更新:根据问题更改而更改 如果列表为空,则向列表添加一个空值。您可以在 servlet 或 JSP 中执行此操作,但在 JSP 中您必须编写额外的 java 代码来修改列表。 <table> <c:set var="list" value="${output.list}"/> <c:if test="${empty list && list != null}"> ${list.add(null)} </c:if> <c:forEach var="iter" items="${list}"> <tr><td><input type="text" /><select></select><input type="text" value="${iter.getVal()}" /> </td> </tr> </c:forEach> </tbody> </table>
我有一些关于包含标签的问题。 使用这样的结构是否正确: 我有一些关于包含标签的问题。 使用这样的结构是否正确: <c:choose> <c:when test="${info == 'view_users'}"> <jsp:include page="/WEB-INF/jsp/admin/view_users.jsp" /> </c:when> <c:when test="${info == 'view_products'}"> <jsp:include page="/WEB-INF/jsp/admin/view_products.jsp" /> </c:when> <c:when test="${info == 'edit_product'}"> <jsp:include page="/WEB-INF/jsp/admin/edit_product.jsp" /> </c:when> <c:when test="${info == 'view_categories'}"> <jsp:include page="/WEB-INF/jsp/admin/view_categories.jsp" /> </c:when> </c:choose> 有时,我会遇到异常JasperException: Unable to compile class for JSP。 如果我使用静态包含而不是动态包含,通过在 JSP 中使用 include 指令,我的问题是否会得到解决,或者我是否需要放弃这样的结构?所有包含的页面都有固定的结构,而不是动态的。 结构可以简化,但不能解决你的编译问题。 <c:import url="/WEB-INF/jsp/admin/${info}.jsp" /> 而是将此逻辑委托给控制器(使用 MVC)来决定应返回哪个视图并正确初始化视图。
如何动态改变图案?我有两个针对两个语言环境的模式。另外,我还有每个语言环境的属性文件,其中包含 date.format 键,其值是 MM/dd/Y...
我正在使用 JSTL 在我的 JSP 中迭代 Spring 的模型值。 我使用 JSTL 在 JSP 中显示这两个日期。 下面是我的Java代码: model.put("最旧的",timesheetService.getOldestPendingTimesh...
我尝试在 Struts 中运行以下代码并收到错误: <%@page contentType="text/html" pageEncoding="UTF-8"%> 我尝试在 Struts 中运行以下代码并收到错误: <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <jsp:include page="/Shop_login.jsp"></jsp:include> <head>Welcome To My shop application </head> <body> User Name:<html:input text="first_name"> </html:input> Password:<html:password text="password"> </html:password> </body> </html> 输出为: Welcome To My shop application User Name: Password: Welcome To My shop application User Name: Password: Welcome To My shop application User Name: Password: Welcome To My shop application User Name: Password: ... 如果您使用 JSTL,您也可以在 JSP 中拥有这些标记库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %> <%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %> <%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %> 文件中没有更多内容,只有这些代码片段 然后使用 <%@ include file="/tags/taglibs.jsp" %> 在页面顶部,您可以使用定义下方的标签。 例如,您可以将其他 JSP 片段包含在 JSTL 中 <c:import url="/pages/page.jsp"/> 或使用 JSP 指令 <jsp:include page="/pages/page.jsp"/> 并且不要在其内部使用相同的片段,它可能会导致从代码编译的 servlet 中出现递归调用。
我想在我的Spring Boot项目中使用JSTL来查看数据库mysql中的数据。我尝试在 pom.xml 中使用依赖项,但是当我使用此标签时<%@ taglib prefix="c" uri="https://jakarta.ee...
JSTL foreach 中的 NPE:在 JSTL foreach 中访问子类变量时出现空指针异常
在 JSTL foreach 中访问子类变量时出现空指针异常,即使该变量存在数据也是如此。 我有这样的类结构 - 公开课问题实现
如何编写<c:if> - jstl标签 - 比较map key与bean属性
我需要根据条件从 JSP 中的 Map>> 类型的映射中检索列表值。条件是将map key 与bean 属性进行比较。里...