Do I add saveMessages(request, (ActionMessages) errors); to the Validate method of ActionForm? Since that is where the validation is happening. Thanks
-----Original Message----- From: Hollaway, Shedrick CIV (TRFKB C600) [mailto:[EMAIL PROTECTED] Sent: Friday, October 15, 2004 10:00 AM To: 'Struts Users Mailing List' Subject: RE: Newbie <html:errors/> never displays errors Looks like you are not saving your errors. Try this after errors.add: saveMessages(request, (ActionMessages) errors); > -----Original Message----- > From: Nadia Kunkov [mailto:[EMAIL PROTECTED] > Sent: Friday, October 15, 2004 9:01 AM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > David, > > I followed your suggestions. I have everything set up the > way you said. > I have a default error: > errors.add("countryName", new > ActionError("errors.required","Country Name")); > > I'm displaying the error using > > <logic:messagesPresent> > <ul> > <html:messages id="error" property="countryName"> > <li><bean:write name="error"/></li> > </html:messages> > </ul> > </logic:messagesPresent> > > I get the following error: > javax.servlet.ServletException: Cannot find bean error in any scope > > I also tried doing the following: > logic:messagesPresent> > <ul> > <html:messages id="error"> > <li><bean:write name="countryName"/></li> > </html:messages> > </ul> > </logic:messagesPresent> > > I still get an error : > javax.servlet.ServletException: Cannot find bean countryName > in any scope > > > It seems like the error doesn't get added to the session or request. > Anything else you could suggest? > Thanks > Nadia > > -----Original Message----- > From: David G. Friedman [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 13, 2004 3:26 PM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > Nadia, > > Are you sure you have the 3 important pieces? > > A) a struts-config.xml (or module) define message resources > file? Mine is > the file WEB-INF/classes/application.properties, which > contains the line: > > errors.required={0} is required. > > My struts-config.xml includes this resource with the line: > <message-resources parameter="application" null="true" /> > > B) Have you put a 'default' error message in your > ActionForm's validate() > method for testing purposes so your method does not end with: > return(errors); > > but with: > errors.add("countryName", new > ActionError("errors.required","Country > Name")); > return(errors); > > C) You have JSP Code like this: > > <logic:messagesPresent> > <ul> > <html:messages id="error"> > <li><bean:write name="error"/></li> > </html:messages> > </ul> > </logic:messagesPresent> > > I got this to work but only AFTER I made sure I had step A configured > properly. > > Since you used property key names when you added each error > instead of using > the Globals.ERROR key, a.k.a. the string "error". You added > each item under > keys like "countryName" and "countryCapital" so you could access them > individually like this: > > <logic:messagesPresent> > <ul> > <html:messages id="error" property="countryName"> > <li><bean:write name="error"/></li> > </html:messages> > </ul> > </logic:messagesPresent> > > AND > > <logic:messagesPresent> > <ul> > <html:messages id="error" property="countryCapital"> > <li><bean:write name="error"/></li> > </html:messages> > </ul> > </logic:messagesPresent> > > Regards, > David > > -----Original Message----- > From: Nadia Kunkov [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 13, 2004 1:20 PM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > Nooo... I guess that's it! > I thought you need to call saveErrors only when you create > ActionErrors > inside Action and not in Validate... > Here is my Action (I'm using DispatchAction): > > public ActionForward Add (ActionMapping actionMapping, ActionForm > actionForm, > HttpServletRequest req, > HttpServletResponse res) > throws Exception > { > > javax.sql.DataSource dataSource; > > dataSource = (DataSource) > servlet.getServletContext().getAttribute(org.apache.struts.Glo > bals.DATA_SOUR > CE_KEY); > CountryService countryService = new CountryService(); > CountryDTO country = new CountryDTO(); > BeanUtils.copyProperties( > country,(AddCountryNewForm) actionForm); > countryService.addCountry(country,dataSource); > > return actionMapping.findForward("newcountrylisting"); > } > > > Where do I save the errors generated by the validate? > > Thanks > > -----Original Message----- > From: David G. Friedman [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 13, 2004 1:10 PM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > Did you call saveErrors() or saveMessages() in your Action to save the > messages into the (request) scope for use in the JSP? > > -----Original Message----- > From: Nadia Kunkov [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 13, 2004 12:59 PM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > Yes, here is what I tried: > > <logic:messagesPresent> > <ul> > <html:messages id="error" name="countryName"> > <li><bean:write name="error"/></li> > </html:messages> > </ul> > </logic:messagesPresent> > > I get an error: can't find bean "error" in any scope :( > This drives me nuts. > Thanks for helping me. > > -----Original Message----- > From: David G. Friedman [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 13, 2004 12:56 PM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > Nadia, > > The bean:write's name attribute must match the id parameter of the > html:messages tag. That's why I suggested your html:messages tag be: > > <html:messages id="error" name="countryName"> > > This means it should pull the errors from the area > "countryName" and present > them for the bean:write tag to use as the name "error" (see > id=".."). Have > you tried this yet? > > Regards, > David > > -----Original Message----- > From: Nadia Kunkov [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 13, 2004 12:46 PM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > Here is my jsp: > ...... > ..... > <form:submit property="method" value="Add"></form:submit> > </form:form> > > <logic:messagesPresent> > <ul> > <html:messages id="error" > > <li><bean:write name="countryName"/></li> > </html:messages> > </ul> > </logic:messagesPresent> > > </body> > </html:html> > > Thanks for your help > > -----Original Message----- > From: David G. Friedman [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 13, 2004 12:35 PM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > Please show your JSP code. I think this should have worked: > > <logic:messagesPresent> > <ul> > <html:messages id="error" name="countryName"> > <li><bean:write name="error"/></li> > </html:messages> > </ul> > </logic:messagesPresent> > > Remember, the "id" is essentially the key you give to the > bean:write but the > name="" attribute is what messages key to retrieve. That > name="" attribute > defaults to the global errors word if you don't specify anything else. > > Regards, > David > > -----Original Message----- > From: Nadia Kunkov [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 13, 2004 12:31 PM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > Thanks > Did that and specified the write bean name this time. > <li><bean:write name="countryName"/></li> > Now I get an error that bean countryName doesn't exist in any scope. > I get a feeling it's something with my message resources. > > How can I see that the following line works. > errors.add("countryName", new ActionError("errors.required","Country > Name")); > > Thanks > Nadia > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 13, 2004 11:32 AM > To: [EMAIL PROTECTED] > Subject: RE: Newbie <html:errors/> never displays errors > > > Hi Nadia, > Use this to write your message : > > <logic:messagesPresent> > <ul> > <html:messages id="error"> > <li><bean:write name="error"/></li> > </html:messages> > </ul> > </logic:messagesPresent> > > <bean:write> will write error message who are call in your > validate method > and <logic:messagesPresent> will check if these message are present. > > Charles Gouin-Vallerand > > -----Original Message----- > From: Nadia Kunkov [mailto:[EMAIL PROTECTED] > Sent: October 13, 2004 11:16 AM > To: Struts help (E-mail) > Subject: Newbie <html:errors/> never displays errors > > > Hi, > > I have gone through multiple postings and followed the > suggestions about > displaying the errors. I just need another pair of eyes to > look at this, > I'm probably missing something. > > I can't display errors on the page. I know that I go through > the validate > method and it finds errors because I'm not moving to the next > page when I do > a submit. If I have an error I want to stay on the same page > and let the > user resubmit. I do stay on the same page but under the form > I want error > messages to be displayed and they are never there. Please take a look > below. > > I have this in my MyAppResources.properties which resides in > /WEB-INF/classes directory > errors.required={0} is required. > > in my struts-config.xml I have > validate="true" > > and also > <message-resources > parameter="MyAppResources" > null="false"/> > > In my ActionForm I have the following in the Validate method: > > public ActionErrors validate (ActionMapping actionMapping, > HttpServletRequest httpServletRequest) > { > ActionErrors errors = new ActionErrors(); > if (getCountryName() == null || > getCountryName().length() < > 1) > { > errors.add("countryName", new > ActionError("errors.required","Country Name")); > } > if (getCountryCapital() == null || > getCountryCapital().length() < 1) > { > errors.add("countryCapital", new > ActionError("errors.required","Country Capital")); > } > return errors; > } > > > In my jsp file I have the following > .....some stuff...... > > <form:submit property="method" value="Add"></form:submit> > </form:form> > <html:errors/> > </body> > </html:html> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]