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 <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 >>> >>> >>> >>> >> >> > > -- 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-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org