我正在开发一个 JSP,我需要调用来自 Bean 的对象的方法。以前版本的页面没有使用JSTL,并且可以正常工作。我的新版本有这样的设置:
<jsp:useBean id="pageBean" scope="request" type="com.epicentric.page.website.PageBean" />
<c:set var="pageDividers" value="<%= pageBean.getPageDividers() %>" />
<c:set var="numColumns" value="${pageDividers.size()}" />
变量pageDividers
is a List
object.
我遇到这个问题:当我要求pageDivider
的大小,抛出异常。我知道这是一个简单的 JTSL 错误——我做错了什么?
错误信息是:
当未指定默认命名空间时,函数大小必须与前缀一起使用
我如何正确访问或调用我的方法pageDividers
object?
在 JSTL 中使用点运算符进行属性访问时,${pageDividers.size}
(no ()需要)导致调用名为的方法getSize()
.
由于 java.util.List 提供了一个名为size()
(而不是getSize()
)您将无法使用该代码访问列表长度。
为了访问列表大小,JSTL 提供了fn:长度函数,使用方式类似于
${fn:length(pageDividers)}
请注意,为了使用fn命名空间,您应该按如下方式声明它
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
此外,相同的函数可以用于任何集合类型,也可以用于字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)