gpt4 book ai didi

java - 如何在 EL 中从 JSP 访问 getColumnNames?

转载 作者:太空宇宙 更新时间:2023-11-04 08:15:17 25 4
gpt4 key购买 nike

我正在使用 JSTL SQL 标记库从 JSP 中执行小型 SQL 查询。

我通常使用 rowsByIndex 在 EL 中检索查询结果,然后迭代返回的集合:

<c:forEach var="row" items="${myQuery.rowsByIndex}">
<p>${row[0]}, ${row[1]}, ${row[2]}, ${row[3]}</p>
</c:forEach>>

我想对列名称执行类似的操作。

我看到结果接口(interface)上有一个方法:

public String[] getColumnNames();

我正在尝试找出如何从 EL 访问它。

我正在尝试做类似的事情:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
...
<table>
<tr>
<c:forEach var="columnName" items="${helloQuery.getColumnNames}">
<th><c:out value="${columnName}" /></th>
</c:forEach>
<tr>
</table>
...

但是没有快乐..

最佳答案

EL依赖Javabeans specification及其访问属性时的命名约定。您基本上只需要指定属性名称(即使它是虚拟的),当需要返回值时,EL 会将其转换为 getter 调用,或者当需要设置值时将其转换为 setter 调用(尽管仅在 JSF #{} 语法中)。

因此,${helloQuery.getColumnNames} 基本上是在尝试调用 ${helloQuery} 表示的类上的 getGetColumnNames() 方法。但没有,这会导致 PropertyNotFoundException。您需要将其更改为 ${helloQuery.columnNames} 才能调用 getColumnNames() 方法。

关于java - 如何在 EL 中从 JSP 访问 getColumnNames?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10549085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com