наследование Java и JSTL - PullRequest
       5

наследование Java и JSTL

1 голос
/ 20 октября 2010

Я хочу получить доступ к атрибуту, унаследованному одним из моих классов Java, в jsp с использованием jstl 1.2:

Java:

public class LigneDeclarationBean  {

    private ELigneDeclaration ligneDecla;
    private ETypeFormulaire typeForm;

...

    public ELigneDeclaration getLigneDecla() {
    return ligneDecla;
}

    public class ELigneDeclaration extends ZELigneDeclaration implements Serializable {
...
    }

public class ZELigneDeclaration implements Serializable {
   private String sLibelle;
...
   public String getSLibelle() {
        return sLibelle;
    }
}

JSP:

<%
List<LigneDeclarationBean> listelignes = (List) request.getAttribute("listeLignes");
                // Affichage de la liste des ligneDeclas
   for (int i = 0; i < listelignes.size(); i++) {
      LigneDeclarationBean ligneDecla = listelignes.get(i);
%>
    ${ligneDecla.ligneDecla.sLibelle} 

Сообщение об ошибке:

сообщение: класс 'package.ELigneDeclaration' делает не имеют свойства 'sLibelle'.

Однако в скриптлете все работает нормально <%=ligneDecla.getLigneDecla().getSLibelle()%> вернуть правильное значение. Это ограничение JSTL? Есть ли другой способ доступа к моему атрибуту с помощью этого taglib? В этом проекте не используется структура представления, и jstl, похоже, является единственной библиотекой тегов, которую я могу использовать.

Ответы [ 2 ]

1 голос
/ 20 октября 2010

Это может быть из-за одной буквы в начале.Попробуйте назвать это ${A.SLibelle}.(т.е. обе буквы в верхнем регистре).

Это немного особый случай с EL, потому что ваш получатель равен getSLibelle(), и парсер, похоже, не может понять, является ли поле строчным или прописным.

0 голосов
/ 20 октября 2010

Ваша проблема найдена в вашем методе получения:

Правильный способ создания метода получения для sLibelle:

/**
 * @return the sLibelle
 */
public String getsLibelle() {
    return sLibelle;
}

(у вас есть заглавная буква S в имени объявления вашего метода получения). Вы можете использовать решение Божо или исправить название метода получения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...