jsp – java inheritance and JSTL – Education Career Blog

I want to acces to an attribute inherited by one of my java classes, in a jsp using 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;


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);

The error message :

message: The class ‘package.ELigneDeclaration ‘ does
not have the property ‘sLibelle’.

However in scriptlet it works fine
<%=ligneDecla.getLigneDecla().getSLibelle()%> return the right value. Is this a limitation of the jstl?
Is there another way to acces to my attribute using this taglib? This project do not use a presentation framework and jstl seems to be the only taglibs I could use.


That might be because of the single letter in the beginning. Try referring to it as ${A.SLibelle}. (i.e. both letters in upper-case).

That’s a bit of a special case with EL, because your getter is getSLibelle(), and the parser seems to be unable to understand whether the field is lower or upper-case.


Your problem is found in your getter method:

The correct way to creating a getter method for sLibelle is:

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

(yours have a capital S on your getter method declaration name). You can use Bozho’s solution or fix the naming of your getter method.

Leave a Comment