I just hacked up a small example with JDK 1.4.2, Tomcat 4.1.24, and Standard 1.0.4 that works fine...

Customer.java:
--------------

package com.dotech;

public class Customer {

    private Integer id;
    private String name;

    public Customer(Integer id, String name) {
        super();
        this.id = id;
        this.name = name;
    }

    public Integer getId() {
        return this.id;
    }

    public String getName() {
        return this.name;
    }
}

customer.jsp:
-------------

<%@ page contentType="text/plain" %>
<%@ page import="com.dotech.Customer" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"; %>

<%
pageContext.setAttribute("customer",
                         new Customer(new Integer(42), "Foo Bar"));
%>

Id:   <c:out value="${customer.id}"/>
Name: <c:out value="${customer.name}"/>

Id: <jsp:getProperty name="customer" property="id"/>

Gives:

Id:   42
Name: Foo Bar

Id: 42

Morrow, Steve D. wrote:

<jsp:getProperty name="customer" property="id"/>

...gives me...

"Cannot find a method to read property 'id' in a bean of type
'ebus.common.Customer'"

...mind you, customer.getId() works just fine. I think solar flares/sunspots
is as good an explanation as any....

I've already "cleaned house" three times today. Gack.


-----Original Message-----
From: Kris Schneider [mailto:[EMAIL PROTECTED] Sent: Monday, November 03, 2003 3:14 PM
To: Tag Libraries Users List
Subject: RE: <c:out> unable to find value



Okay, so you've heard about all the solar flare activity, right? I'm sure once that clears up it'll work just fine... Uh huh. What happens with:


<jsp:getProperty name="customer" property="id"/>

You might have to do this before using it:

<jsp:useBean id="customer" type="pkg.name.Customer"/>

I dunno, it's kooky. Make sure you've got JSTL installed correcty, stop your app server and blow away the app's "work area" (complied JSP files, etc), then restart. Yup, shotgunning at this point...

Quoting "Morrow, Steve D." <[EMAIL PROTECTED]>:


Oh yeah... <%= customer.getId() %> works, of course.


-----Original Message-----
From: Kris Schneider [mailto:[EMAIL PROTECTED]
Sent: Monday, November 03, 2003 2:42 PM
To: Tag Libraries Users List
Subject: Re: <c:out> unable to find value



You can use java.beans.Introspector.decapitalize to tell you
what the property name should look like. In this case, Introspector.decapitalize("Id") results in "id", so you should be fine. I'm sure that's helpful ;-). Are you positive that your scoped attribute "customer" actually references an instance of your Customer class? Here's another helpful snippet to see all the properties exposed by your class:


import java.beans.*;
...
BeanInfo info = Instrospector.getBeanInfo(Customer.class);
PropertyDescriptor[] props =

info.getPropertyDescriptors(); for (int


i = 0; i < props.length; i++) {
 System.out.println(props[i].getName());
}

Quoting "Morrow, Steve D." <[EMAIL PROTECTED]>:


I have a session-scoped bean structured (in part) as follows:

public class Customer {

   public Integer id;
   public String name;

   public Integer getId() {
       return id;
   }

   public String getName() {
       return name;
   }
}

In the JSP, <c:out value="${customer.name}" /> works as

expected.


However, <c:out value="${customer.id}" /> does not - it

throws an


error that the JSP is "unable to find a value for "id" in

object..." I


added the following method, which works fine with a value of
${customer.ID}:

public String getID() {
   return id.toString();
}

I googled, but was unable to find an answer, or anyone experiencing
the same sort of problem. I'm sure I'm missing something pretty simple, but I could use some more eyes on the problem. Why

is the tag


unable to find ${customer.id} (i.e. use the getId() method)?

I am using Jakarta's 1.0.4 taglibs...

-- Kris Schneider <mailto:[EMAIL PROTECTED]> D.O.Tech <http://www.dotech.com/>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to