The error you're experiencing is probably the result of an exception that
was thrown in the getBlocks() method.  The error message does say, "An
error occurred"; this is different from "Class XXX does not have property
YYY."

-- 
Shawn Bayern
"JSTL in Action"   http://www.jstlbook.com

On Fri, 2 Aug 2002, Vernon Wu wrote:

> Shawn,
> 
> Thanks for clarifying the concept betwennt attribute and property.
> 
> Please read below for the problem.
> 
> >> But when I use ${agentHelper.blocks} where the "blocks" is not an
> >> attribute, I get an error message as:
> >> 
> >> An error occurred while evaluating custom action attribute "value"
> >> with value "${agentHelper.blocks}": An error occurred while getting
> >> property "blocks" from an instance of class ....
> >> 
> >It means that no "blocks" property was found -- either that no getBlocks()
> >method was found, the getBlocks() method was unsuitable for another reason
> >(e.g., accepting an argument, or having a setBlocks() method that doesn't
> >correspond to it in data type), or a BeanInfo overrides it.
> 
> There is a method. getBlocks() in the class without taking any argument, but not 
>"set" method. I don't see anything 
> wrong. Here is the related code:
> 
> public class MatchAgentHelper implements Serializable {
> 
>       static private DBConnectionPool conn;
>       private String hostID;
> 
>       private MatchAgentDAO dao;
> 
>       private int count = 2;
>       private int start = 0;
> 
>       /**
>        * Constructor for MatchAgentHelper.
>        */
>       public MatchAgentHelper() {
>               super();
>       }
> 
>       public MatchAgentHelper(DBConnectionPool conn) throws 
>MatchAgentDAOSysException{
>               if(this.conn == null)
>                       this.conn = conn;
>               dao = new MatchAgentDAOImpl(conn);
>       }
> 
>       public void setCount(String countString) {
>                        this.count = (new Integer(countString)).intValue();
>       }
> 
>       public void setStart(String startString) {
>                       if (startString != null) {
>                               this.start = (new Integer(startString)).intValue();
>                       } else {
>                               start = 0;
>                       }
>       }
> 
>       public void sethostID(String id) {
>               this.hostID = id;
>       }
>               
>       public Page getBlocks() throws MatchAgentException {
>               return getBlocksFromDAO(hostID, start, count, "");
>       }
>       
>       private Page getBlocksFromDAO(String Id, int start, int count, String 
>localeString)
>                       throws MatchAgentException {
>                       Locale locale = getLocaleFromString(localeString);
>               return dao.getBlocks(Id, start, count, locale);
>       }
>     
>       private Locale getLocaleFromString(String localeString) {
>               //...
>       }
> }
> 
> And the followings is the related JSP page code:
> 
> <%@ taglib prefix="c" uri="/WEB-INF/tlds/c.tld" %>
> <%@ taglib prefix="fmt" uri="/WEB-INF/tlds/fmt.tld" %>
> 
> 
> <jsp:useBean
>   id="agentHelper"
>   class="com.vernonwu.mm.web.client.MatchAgentHelper"
>   scope="session"
> />
> <c:choose>
>  <c:when test="${param.count != null}">
>   <c:set value="${param.start}" target="${agentHelper}" property="start"/>
>   <c:set value="${param.count}" target="${agentHelper}" property="count"/>
>  </c:when>
>  <c:otherwise>
>   <c:set value="0" target="${agentHelper}" property="start"/>
>   <c:set value="2" target="${agentHelper}" property="count"/>
>  </c:otherwise>
> </c:choose>
> 
> <c:set value="${param.id}" target="${agentHelper}" property="hostID"/>
> <c:set value="${agentHelper.blocks}" var="pageResults" />
>  
> 
> Thank for your help.
> 
> Vernon
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> 


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

Reply via email to