RE: java.lang.ClassCastException trying to populate html:select
FYI Each web application has its own struts.jar so different web apps could be running different struts versions. If you need to use LabelValueBean in an earlier version, you can always copy the source. Don't ya just love open source? Steve -Original Message- From: Alex Cantatore [mailto:[EMAIL PROTECTED] Sent: July 3, 2003 2:21 PM To: Struts Users Mailing List Subject: Re: java.lang.ClassCastException trying to populate html:select I forgot to mention it, but I can't use org.apache.struts.util.LabelValueBean, unfortunately, as I am using an older version of Struts. Though it would be nice to upgrade, my supervisor has told me that I have to use the older version as the server is set up to run it and there are other apps on the server that require it. ... - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: java.lang.ClassCastException trying to populate html:select
Please? Can anyone help me? I'm really lost here. -Alex --- Alex Cantatore [EMAIL PROTECTED] wrote: Hi all, I have been working on this for two days and it's gotten to the point where I cannot see what I did wrong in the least. I'm just trying to figure out how to make it work; the actual program is a bare shell with the sole purpose of populating a html:select. There is a RegisterAction,success.jsp, ArrayForm, and ValueInfoBean. You start by calling register.do, which creates an ArrayList and puts three ValueInfoBeans in it. It then sets ArrayForm to carry the ArrayList, wherein it is converted to a Collection. Control is then passed to success.jsp which tries to read in the Collection to populate the html:select, but instead gives me a ClassCastException. Any help would be greatly appreciated. Code follows. public class ValueInfoBean extends ActionForm { private String value = null; private String info = null; public String getValue() { return value; } public void setValue(String v) { value = v; } public String getInfo() { return info; } public void setInfo(String i) { info = i; } public ValueInfoBean() { super(); } public void reset(ActionMapping mapping, HttpServletRequest request) { value = null; info = null; } } public class ArrayForm extends ActionForm { private Collection theArray = null; public Collection getTheArray() { return theArray; } public void setTheArray(ArrayList t) { theArray = t; } public ArrayForm() { super(); } public void reset(ActionMapping mapping, HttpServletRequest request) { theArray = null; } } public class RegisterAction extends Action { /** * Constructor */ public RegisterAction() { super(); } public ActionForward perform( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ActionErrors errors = new ActionErrors(); ArrayList myList = new ArrayList(); ValueInfoBean myBean = new ValueInfoBean(); for(int i = 0; i 3; i++) { myBean.setValue(String.valueOf(i)); myBean.setInfo(i + Please work + i); myList.add(myBean); } ArrayForm thisArray = new ArrayForm(); thisArray.setTheArray(myList); request.setAttribute(beanArray, thisArray); return mapping.findForward(success); } } and success.jsp: html:form action=register.do bean:define id=theArray scope=request name=beanArray type=java.util.Collection/ html:select property=username multiple=true html:options collection=theArray property=value labelProperty=info/ /html:select /html:form /BODY /html:html Once again, major thanks to anyone who can help in the least. -Alex __ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] __ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: java.lang.ClassCastException trying to populate html:select
I think the reason why no one has tackled this is because there is a lot of things this could be. The exact error isn't mentioned either. Maybe show a bit of the stack trace? Let me take a crack at it by giving you the basics of what struts does and then maybe this will help? I wouldn't use a ValueInfoBean that extends ActionForm - there is no need. There is an org.apache.struts.util.LabelValueBean that does exactly this and is used by some of the tags: optionsCollection for example. Your struts-config should have a /register in the path and should declare what your form is and what scope it is in. The line where you create the arrayForm is unnecessary since it will be created for you by the time the execute is called. I would use optionsCollection with LabelValue Beans instead of using collection attribute with options tag. Read the user docs carefully since the select and multiple select is the hardest one. sandeep --- Alex Cantatore [EMAIL PROTECTED] wrote: Please? Can anyone help me? I'm really lost here. -Alex --- Alex Cantatore [EMAIL PROTECTED] wrote: Hi all, I have been working on this for two days and it's gotten to the point where I cannot see what I did wrong in the least. I'm just trying to figure out how to make it work; the actual program is a bare shell with the sole purpose of populating a html:select. There is a RegisterAction,success.jsp, ArrayForm, and ValueInfoBean. You start by calling register.do, which creates an ArrayList and puts three ValueInfoBeans in it. It then sets ArrayForm to carry the ArrayList, wherein it is converted to a Collection. Control is then passed to success.jsp which tries to read in the Collection to populate the html:select, but instead gives me a ClassCastException. Any help would be greatly appreciated. Code follows. public class ValueInfoBean extends ActionForm { private String value = null; private String info = null; public String getValue() { return value; } public void setValue(String v) { value = v; } public String getInfo() { return info; } public void setInfo(String i) { info = i; } public ValueInfoBean() { super(); } public void reset(ActionMapping mapping, HttpServletRequest request) { value = null; info = null; } } public class ArrayForm extends ActionForm { private Collection theArray = null; public Collection getTheArray() { return theArray; } public void setTheArray(ArrayList t) { theArray = t; } public ArrayForm() { super(); } public void reset(ActionMapping mapping, HttpServletRequest request) { theArray = null; } } public class RegisterAction extends Action { /** * Constructor */ public RegisterAction() { super(); } public ActionForward perform( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ActionErrors errors = new ActionErrors(); ArrayList myList = new ArrayList(); ValueInfoBean myBean = new ValueInfoBean(); for(int i = 0; i 3; i++) { myBean.setValue(String.valueOf(i)); myBean.setInfo(i + Please work + i); myList.add(myBean); } ArrayForm thisArray = new ArrayForm(); thisArray.setTheArray(myList); request.setAttribute(beanArray, thisArray); return mapping.findForward(success); } } and success.jsp: html:form action=register.do bean:define id=theArray scope=request name=beanArray type=java.util.Collection/ html:select property=username multiple=true html:options collection=theArray property=value labelProperty=info/ /html:select /html:form /BODY /html:html Once again, major thanks to anyone who can help in the least. -Alex __ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] __ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com
Re: java.lang.ClassCastException trying to populate html:select
I forgot to mention it, but I can't use org.apache.struts.util.LabelValueBean, unfortunately, as I am using an older version of Struts. Though it would be nice to upgrade, my supervisor has told me that I have to use the older version as the server is set up to run it and there are other apps on the server that require it. Or something. It was one of those, Because I said so, situations, so there's really nothing I can do with respect to that. I'm fooling around with some of the other things you mentioned, but I've never heard of optionsCollection before now. I think it is 1.1 as well though, yes? I'm stuck with 1.0.2 solutions. The complete error message follows, my apologies for not including it originally. -Alex [Servlet Error]-[JSP 1.2 Processor]: java.lang.ClassCastException: com.ejgallo.chapteroneweb.app.ArrayForm at org.apache.jsp._success._jspService(_success.java:132) at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344) at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:598) at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:696) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110) at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174) at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313) at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116) at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:258) at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42) at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:872) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:491) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:173) at org.apache.struts.action.ActionServlet.processActionForward(ActionServlet.java:1759) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1596) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:492) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110) at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174) at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313) at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116) at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:258) at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42) at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:872) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:491) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:173) at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79) at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:199) at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71) at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182) at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:331) at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56) at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:432) at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:343) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:592) --- Sandeep Takhar [EMAIL PROTECTED] wrote: I think the reason why no one has tackled this is because there is a lot of things this could be. The exact error isn't mentioned