I found this paragraph in bean spec, which kind of explains it:
----------------------------
Thus when we extract a property or event name from the middle of an existing
Java name, we
normally convert the first character to lower case. However to support the
occasional use of all
upper-case names, we check if the first two characters of the name are both
upper case and if
so leave it alone. So for example,
"FooBah" becomes "fooBah"
"Z" becomes "z"
"URL" becomes "URL"
We provide a method Introspector.decapitalize which implements this
conversion rule.
-----------------------------
good to know this detail

alex
-----Original Message-----
From: Alex Tso [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, April 11, 2001 2:53 PM
To: '[EMAIL PROTECTED]'
Subject: RE: problem getting form bean


Thank you David! It works.
However, I still don't understand the naming convention, I have
'getEClientId' as the method, and 'eClientId' as the bean property, so I
thought I should put property="eClientId" within html:text.  Is it an
exception to property with double capitalization in the beginning?  I didn't
find any reference in the bean spec (maybe overlook), would you kindly
explain this concept?
I definitely stay away from weird naming capitalization from now on.

thanks
alex 

-----Original Message-----
From: David Winterfeldt [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, April 11, 2001 2:09 PM
To: [EMAIL PROTECTED]
Subject: Re: problem getting form bean


If your method is getEClientId, then your html:text
should be.
<html:text property="EClientId" size="50"/>

It's in the spec on JavaBean propertys.

David

--- Alex Tso <[EMAIL PROTECTED]> wrote:
> I am trying to implement a webapp using weblogic51
> model after the struts
> example.  One of the page contain a simple form just
> like the
> 'registration.jsp' in the example, here is a the
> piece of jsp where I have
> the form:
> -------------------------------------------
> <html:form  action="/saveEClient">
> <html:hidden property="action"/>
> <table border="0" width="100%">
>   <tr>
>     <th align="right">
>       <bean:message key="prompt.eclientid"/>
>     </th>
>     <td align="left">
>       <html:text property="eClientId" size="50"/>
>     </td>
>   </tr>
> -----------------------------------------------
> 
> Here is the exception I got:
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Processi
> ng a GET for /editEClient
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Setting
> locale 'en_US'
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Looking
>  for ActionForm bean under attribute 'eClientForm'
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Creatin
> g new ActionForm instance of class
> 'com.emat.mchv.EClientForm'
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Storing
>  instance under attribute 'eClientForm' in scope
> 'request'
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Populat
> ing bean properties from this request
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Validat
> ing input form properties
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Looking
>  for Action instance for class
> com.emat.mchv.EditEClientAction
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Double
>  checking for Action instance already there
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Creati
> ng new Action instance
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> EditECli
> entAction:  Processing Add action
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Setting
>  transactional control token
> Wed Apr 11 11:06:56 EDT 2001:<I>
> <WebAppServletContext-approot> action:
> Forward
> ing to 'success' page
> javax.servlet.jsp.JspException: No getter method for
> property eClientId of
> bean
> org.apache.struts.taglib.html.BEAN
>         at
>
org.apache.struts.util.RequestUtils.lookup(RequestUtils.java:234)
>         at
>
org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.ja
> va:220)
>         at
>
jsp_servlet._mchv._eclient._jspService(_eclient.java:361)
>         at
>
weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
>         at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> pl.java:106)
>         at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> pl.java:124)
>         at
>
weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispat
> cherImpl.java:154)
>         at
>
org.apache.struts.action.ActionServlet.processActionForward(ActionSer
> vlet.java:1697)
>         at
>
org.apache.struts.action.ActionServlet.process(ActionServlet.java:154
> 0)
>         at
>
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:491)
>         at
>
javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
>         at
>
javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
>         at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> pl.java:106)
>         at
>
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
> textImpl.java:907)
>         at
>
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
> textImpl.java:851)
>         at
>
weblogic.servlet.internal.ServletContextManager.invokeServlet(Servlet
> ContextManager.java:252)
>         at
>
weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.jav
> a:364)
>         at
>
weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:252)
> 
>         at
>
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
> javax.servlet.ServletException: runtime failure in
> custom tag 'text'
>         at
>
jsp_servlet._mchv._eclient._jspService(_eclient.java:383)
>         at
>
weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
>         at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> pl.java:106)
>         at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> pl.java:124)
>         at
>
weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispat
> cherImpl.java:154)
>         at
>
org.apache.struts.action.ActionServlet.processActionForward(ActionSer
> vlet.java:1697)
>         at
>
org.apache.struts.action.ActionServlet.process(ActionServlet.java:154
> 0)
>         at
>
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:491)
>         at
>
javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
>         at
>
javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
>         at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> pl.java:106)
>         at
>
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
> textImpl.java:907)
>         at
>
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
> textImpl.java:851)
>         at
>
weblogic.servlet.internal.ServletContextManager.invokeServlet(Servlet
> ContextManager.java:252)
>         at
>
weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.jav
> a:364)
>         at
>
weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:252)
> 
>         at
>
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
> Wed Apr 11 11:06:57 EDT 2001:<E>
> <WebAppServletContext-approot> Root cause
> of Se
> rvletException
> javax.servlet.ServletException: runtime failure in
> custom tag 'form'
>         at
>
jsp_servlet._mchv._eclient._jspService(_eclient.java:587)
>         at
>
weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
>         at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> pl.java:106)
>         at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> pl.java:124)
>         at
>
weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispat
> cherImpl.java:154)
>         at
>
org.apache.struts.action.ActionServlet.processActionForward(ActionSer
> vlet.java:1697)
>         at
> 
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.com/

Reply via email to