Невозможно найти значение для "length" в объекте класса "java.lang.String" using operator "." - PullRequest
2 голосов
/ 15 августа 2010

Почему это выражение JSTL не может использовать метод длины класса String:

    <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 ]

4 голосов
/ 15 августа 2010

Вы можете получить доступ только к получателям (getSomething), как это.Чтобы найти размер строки, попробуйте fn:length(displayName).Естественно, fn пространство имен должно быть импортировано:

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

Также вы можете заменить это все на empty check: ${not empty displayName}

2 голосов
/ 15 августа 2010

Посмотрите, поможет ли .

Вам нужно будет добавить

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...