You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Muthu Velappan <mu...@aspiresys.com> on 2009/03/13 06:12:23 UTC

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.jsp.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)
	at
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-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: org.apache.jasper.JasperException: tag 'select', field 'list', name 'fieldTypeID'

Posted by Muthu Velappan <mu...@aspiresys.com>.
Thanks Greg, that tutorial helped me a lot... I cleared the issue by using
Prepare Interceptor and everything works fine now... I'm still not that much
clear on resolving the issue with <s:action> tag but I will look into that a
little later...

Thanks again to u & chris for giving ur inputs

~Muthu 


Greg Lindholm wrote:
> 
> Have you looked at this?
> 
> http://struts.apache.org/2.1.6/docs/how-do-we-repopulate-controls-when-validation-fails.html
> 
> 
> 
> Muthu Velappan wrote:
>> 
>> Thanks for the reply, Chris.. 
>> 
>> My problem is that in there is no two separate actions for loading and
>> submitting the data back from this JSP.. To be precise, while loading the
>> page it will use the input() method where as while submitting it will use
>> the execute() method in my Action class
>> 
>> Actual headache when the validator throws error, the control will not
>> even come to execute() method and I believe that's correct. Hence, it
>> throws the error. 
>> 
>> Can you please eloborate this point in ur mail.. 
>> "create a small action that gives you the Map and use the <s:action> tag
>> as you populate the select"
>>  
>> I believe this will clear my issue but right now I don't know how to
>> implement this.. Since, I'm new to this Struts development, If you could
>> just point me to any tutorial or sample that would be great...
>> 
>> Thanks
>> ~Muthu
>> 
>> 
>> musomesa wrote:
>>> 
>>> 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 <mu...@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-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>> 
>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
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-tp22490368p22520930.html
Sent from the Struts - User mailing list archive at Nabble.com.


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


Re: org.apache.jasper.JasperException: tag 'select', field 'list', name 'fieldTypeID'

Posted by Greg Lindholm <gl...@yahoo.com>.
Have you looked at this?

http://struts.apache.org/2.1.6/docs/how-do-we-repopulate-controls-when-validation-fails.html



Muthu Velappan wrote:
> 
> Thanks for the reply, Chris.. 
> 
> My problem is that in there is no two separate actions for loading and
> submitting the data back from this JSP.. To be precise, while loading the
> page it will use the input() method where as while submitting it will use
> the execute() method in my Action class
> 
> Actual headache when the validator throws error, the control will not even
> come to execute() method and I believe that's correct. Hence, it throws
> the error. 
> 
> Can you please eloborate this point in ur mail.. 
> "create a small action that gives you the Map and use the <s:action> tag
> as you populate the select"
>  
> I believe this will clear my issue but right now I don't know how to
> implement this.. Since, I'm new to this Struts development, If you could
> just point me to any tutorial or sample that would be great...
> 
> Thanks
> ~Muthu
> 
> 
> musomesa wrote:
>> 
>> 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 <mu...@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-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>> 
>> 
>> 
>> 
> 
> 

-- 
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-tp22490368p22495569.html
Sent from the Struts - User mailing list archive at Nabble.com.


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


Re: org.apache.jasper.JasperException: tag 'select', field 'list', name 'fieldTypeID'

Posted by Muthu Velappan <mu...@aspiresys.com>.
Thanks for the reply, Chris.. 

My problem is that in there is no two separate actions for loading and
submitting the data back from this JSP.. To be precise, while loading the
page it will use the input() method where as while submitting it will use
the execute() method in my Action class

Actual headache when the validator throws error, the control will not even
come to execute() method and I believe that's correct. Hence, it throws the
error. 

Can you please eloborate this point in ur mail.. 
"create a small action that gives you the Map and use the <s:action> tag as
you populate the select"
 
I believe this will clear my issue but right now I don't know how to
implement this.. Since, I'm new to this Struts development, If you could
just point me to any tutorial or sample that would be great...

Thanks
~Muthu


musomesa wrote:
> 
> 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 <mu...@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-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 
> 
> 

-- 
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-tp22490368p22492435.html
Sent from the Struts - User mailing list archive at Nabble.com.


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


Re: org.apache.jasper.JasperException: tag 'select', field 'list', name 'fieldTypeID'

Posted by mu...@aol.com.
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 <mu...@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-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org