Guru and Nikola,

Thanks for the suggestions, having looked at this again, I think this is a
Struts problem however, so I've posted to struts-users.

Thanks anyway,

Andy.

>-----Original Message-----
>From: Gurumoorthy [mailto:[EMAIL PROTECTED]
>Sent: 26 May 2005 08:37
>To: Tomcat Users List
>Subject: Re: <html:errors/> blank page on invalid form
>
>
>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]
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to