hello <html:form action="/SubmitLogonForm.do"> is wrong <html:form action="/SubmitLogonForm">
Regards Guru ----- Original Message ----- From: "Nikola Milutinovic" <[EMAIL PROTECTED]> To: "Tomcat Users List" <tomcat-user@jakarta.apache.org> Sent: Thursday, May 26, 2005 6:04 AM Subject: Re: <html:errors/> blank page on invalid form > Andy wrote: > > >Hi All, > > > >I'm unable to output any errors using <html:errors/> tag, in Tomcat > >5.5.7 I've tried numerous configurations and have now ran out of patience. > >As I haven't been using Struts for more than three days I hope somebody > >more experienced can point help me out. > > > >When I select Submit, entering data into my form fields so the form is > >parsed as valid, the forward works correctly. When I leave the fields > >empty, so the form is parsed as invalid, I just get an empty page back - > >which must be generated by Struts as it doesn't match any HTML I have. > > > > > > Check out the logs, you could be running into an exception. Also, set > buffer size of 20kb on all your pages, while you're testing. Empty > output can also be caused by an exception in the page itself, and buffer > being already sent. > > >Here is what I have in various files - > > > >--------------------------------------------------------------------------- - > >---- > > > >logon.jsp - > > > ><%@ page contentType="text/html;charset=UTF-8" language="java" %> > ><%@ taglib uri="/tags/struts-bean" prefix="bean" %> > ><%@ taglib uri="/tags/struts-html" prefix="html" %> > ><html> > ><head> > ><title><bean:message key="logon.title"/></title> > ></head> > ><body> > ><html:errors/> > ><html:form action="/SubmitLogonForm.do"> > > <table> > > <tr> > > <td>Username</td> > > <td><html:text property="username"/></td> > > </tr> > > <tr> > > <td>Password</td> > > <td><html:text property="password"/></td> > > </tr> > > <tr> > > <td> > > <html:submit/> > > <html:cancel/> > > </td> > > <td></td> > > </tr> > > </table> > ></html:form> > > > ></body> > > > > > > Looks fine, except for the buffer page directive. > > >In LogonAction.java - > > > > > > public ActionForward execute(ActionMapping mapping, ActionForm form, > > HttpServletRequest request, > >HttpServletResponse response) > > throws Exception { > > > > if (isCancelled(request)) { > > log.debug("cancel pressed"); > > return mapping.findForward(Constants.FAILURE); > > } > > > > > > Why would you consider "Cancel" a failure? Not that it will not work, but... > > > LogonForm logonForm = (LogonForm)form; > > log.debug("username "+logonForm.getUsername()); > > log.debug("password "+logonForm.getPassword()); > > > > return mapping.findForward(Constants.SUCCESS); > > } > > > > > > You're not checking the login, but that's fine for a test. > > >In LogonForm.java (I have getters/setters for HTML fields, and a reset > >method, > >not shown) - > > > > public ActionErrors validate(ActionMapping actionMapping, > >HttpServletRequest httpServletRequest) { > > > > log.debug("validate"); > > ActionErrors errors = new ActionErrors(); > > > > if > >(FormUtils.isNullOrEmpty(httpServletRequest.getParameter("username"))) { > > log.debug("logon.form.username.invalid"); > > errors.add(ActionErrors.GLOBAL_MESSAGE,new > >ActionMessage("logon.form.username.invalid")); > > } > > > > > > You don't need to use GLOBAL_MESSAGE, that is wrong, I think. And use > errors, not messages. My validation would read: > > errors.add( "username", new ActionError( "logon.form.username.invalid")); > > Nix. > > --------------------------------------------------------------------- > 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]