Yes, but I don't think you can call saveMessages inside validate method. You can call it within your Action but not an Actionform. Should I not use validate at all and do everything in my Action? Thanks Nadia
-----Original Message----- From: Hollaway, Shedrick CIV (TRFKB C600) [mailto:[EMAIL PROTECTED] Sent: Friday, October 15, 2004 10:49 AM To: 'Struts Users Mailing List' Subject: RE: Newbie <html:errors/> never displays errors Without seeing your validation code I'm guessing you have this or want to have this: 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")); } saveMessages(request, (ActionMessages) errors); return (errors); } Shed. > -----Original Message----- > From: Nadia Kunkov [mailto:[EMAIL PROTECTED] > Sent: Friday, October 15, 2004 10:13 AM > To: Struts Users Mailing List > Subject: RE: Newbie <html:errors/> never displays errors > > > 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: > > > > > > 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: > > > > > > > > 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] > --------------------------------------------------------------------- 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]