无法使用运算符“。”在类“java.lang.String”的对象中找到“length”的值。

时间:2010-08-15 19:44:13

标签: java string spring jsp jstl

为什么这个JSTL表达式似乎不能使用String类的length方法:

    <c:when test="${displayName != null && displayName.length > 0 }">
        <p><c:out value="${displayName}"/></p>
    </c:when>

它产生了这个例外:

java.lang.RuntimeException: javax.servlet.ServletException: 
javax.servlet.jsp.el.ELException: Unable to find a value for "length" in object 
of class "java.lang.String" using operator "."

我在JSP的顶部包含了以下标记库:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

2 个答案:

答案 0 :(得分:4)

您只能访问这样的getter(getSomething)。要查找字符串大小,请尝试fn:length(displayName)。当然,应该导入fn命名空间:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

此外,您可以使用empty检查${not empty displayName}

替换所有内容

答案 1 :(得分:2)

查看this是否有帮助。

你必须添加

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>