Looks like your JSP pulls the data from one action, which I will call A, and 
posts to another action, EditField. 
When there is an error you are bounced back to the JSP (assuming 'input' leads 
back to this JSP but 
now the JSP is trying to populate the select from a property called 
fieldTypeMap on EditField instead of fieldTypeMap on A.
 There is probably no such property on EditField and so it gives you the 
stacktrace.

Quick and dirty solution is to create such a propertyon the EditField action. 
If you want to avoid code duplication you could
create a small action that gives you the Map and use the <s:action> tag as you 
populate the select.

Cheers
Chris aka musomesa




-----Original Message-----
From: Muthu Velappan <muthu.velap...@aspiresys.com>
To: user@struts.apache.org
Sent: Fri, 13 Mar 2009 2:12 pm
Subject: org.apache.jasper.JasperException: tag 'select', field 'list', name 
'fieldTypeID'




Hi,

I have a JSP page containing data like this...

<s:form name="form1" theme="qxhtml">
    <s:bean name="java.util.HashMap" id="qTableLayout">
        <s:param name="tablecolspan" value="%{2}" />
    </s:bean>
    <s:textfield name="fieldName" required="true" key="fieldmgmt.fieldname">
        <s:param name="rowstyle" value="%{'row21'}" />
    </s:textfield>
    <s:textfield name="displayName" required="true"
key="fieldmgmt.displayname">
        <s:param name="rowstyle" value="%{'row31'}" />
    </s:textfield>
    <s:select list="fieldTypeMap"
        name="fieldTypeID" key="fieldmgmt.fieldtype">
        <s:param name="rowstyle" value="%{'row31'}" />
    </s:select>
    <s:submit value="Save Changes" align="center" cssClass="buttonstyle1"
action="EditField">
        <s:param name="rowstyle" value="%{'row31'}" />
    </s:submit>
</s:form>   

this page works fine in first load.. However, I end up getting problem when
there is any validation error occured fieldname or displayname fields. The
select box values are not loaded properly in this case, It shows a big stack
trace like the one shown below. I found that map is not loaded back in this
Validator error loop but I don't know how to fix this.. Can any one throw
some light on how to clear this out...

SEVERE: Servlet.service() for servlet jsp threw exception
tag 'select', field 'list', name 'fieldTypeID': The requested list key
'fieldTypeMap' could not be resolved as a
collection/array/map/enumeration/iterator type. Example: people or
people.{name} - [unknown location]
    at org.apache.struts2.components.Component.fieldError(Component.java:230)
    at org.apache.struts2.components.Component.findValue(Component.java:292)
    at
org.apache.struts2.components.ListUIBean.evaluateExtraParams(ListUIBean.java:80)
    at
org.apache.struts2.components.Select.evaluateExtraParams(Select.java:105)
    at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:858)
    at org.apache.struts2.components.UIBean.end(UIBean.java:509)
    at
org.apache.struts2.views.j
sp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
    ....
    ....
2009-03-13 10:16:04,002 ERROR (CommonsLogger.java:error:28) - 
java.security.PrivilegedActionException: org.apache.jasper.JasperException:
tag 'select', field 'list', name 'fieldTypeID': The requested list key
'fieldTypeMap' could not be resolved as a
collection/array/map/enumeration/iterator type. Example: people or
people.{name} - [unknown location]
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at
com.aspire.propel.web.membership.SecurityInterceptor.intercept(SecurityInterceptor.java:49)
    at
com.google.inject.struts2.GuiceObjectFactory$LazyLoadedInterceptor.intercept(GuiceObjectFactory.java:171)
    at
com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230)
    at
com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229)
    at
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227)
    at
com.aspire.propel.transaction.TransactionActionInterceptor$1.executeTransaction(TransactionActionInterceptor.java:58)
    at
com.aspire.propel.transaction.TransactionManager.executeTransaction(TransactionManager.java:82)
    at
com.aspire.propel.transaction.TransactionActionInterceptor.intercept(TransactionActionInterceptor.java:54)
    at
com.google.inject.struts2.GuiceObjectFactory$LazyLoadedInterceptor.intercept(GuiceObjectFactory.java:171)
    ....
    ....
    at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.jasper.JasperException: tag 'select', field 'list',
name 'fieldTypeID': The requested list key 'fieldTypeMap' could not be
resolved as a collection/array/map/enumeration/iterator type. Example:
people or people.{name} - [unknown location]
    at
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
    a
t
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    ...
    ...
    ... 61 more


Advance Thanks for any help..

~Muthu
-- 
View this message in context: 
http://www.nabble.com/org.apache.jasper.JasperException%3A-tag-%27select%27%2C-field-%27list%27%2C-name-%27fieldTypeID%27-tp22490368p22490368.html
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org


Reply via email to