I am new to Struts and am using Ted's sample logon app as my basis for learning. His part works fine. I added a new jsp page that contains two fields, created a form bean & an action form with validation edits. My problem is that when I execute my form via http://localhost:8080/starrd/app/names.do I get validation errors appearing immediately (before I enter any data in the form). I can't believe thats normal: I must be doing something wrong.
Thanks in advance for the help. Dick Starr Here's the pertinent parts of my struts-config: <form-beans> <form-bean name="nameForm" type="com.starrcs.app.SANameForm"/> <global-forwards> <forward name="names" path="/app/names.do"/> <action-mappings> <action path="/app/names" type="com.starrcs.app.SANameAction" name="nameForm" scope="request" validate="true" input="/pages/app/Name.jsp"> <forward name="continue" path="/pages/app/Name.jsp"/> </action> Here's my Name.jsp: <!-- Name.jsp 2002/01/21 RJS --> <%@ page language="java" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <html><head><title><bean:message key="app.name.title"/></title></head> <html:base/> <body> <html:errors/> <html:form action="/app/names" focus="name"> <table border="0" width="100%"> <tr><th align="right">Name:</th><td align="left"> <html:text property="name"/></td> </tr> <tr><th align="right">Address line one:</th><td align="left"> <html:text property="addr1"/></td> <tr> <td align="right"><html:submit property="submit" value="Submit"/></td> <td align="left"><html:reset/></td> </tr> </table> </html:form> </body> </html> <%-- Allow user to submit username and password to logon action. --%> Here's the pertinent parts of SANameAction.java: public final class SANameAction extends Action { public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // Obtain fields from web tier String name = ((SANameForm) form).getName(); String addr1 = ((SANameForm) form).getAddr1(); // Log this event, if appropriate if (servlet.getDebug() >= SAConstants.DEBUG) { StringBuffer message = new StringBuffer("SANameAction: name = "); message.append(name); message.append(", addr1 = "); message.append(addr1); servlet.log(message.toString()); } // Forward control to the welcome URI // specified in the configuration. return (mapping.findForward(SAConstants.WELCOME)); } } // End SANameAction Here's the pertinent parts of SANameForm.java: public final class SANameForm extends ActionForm { // ---- Instance Variables private String name = null; private String addr1 = null; // ---- Properties public String getName() { return (this.name); } public void setName(String name) { this.name = name; } public String getAddr1() { return (this.addr1); } public void setAddr1(String addr1) { this.addr1 = addr1; } // ---- Public Methods public void reset(ActionMapping mapping, HttpServletRequest request) { setName(null); setAddr1(null); } public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if ((name == null) || (name.length() < 1)) errors.add("name", new ActionError("app.error.name.required")); if ((addr1 == null) || (addr1.length() < 1)) errors.add("addr1", new ActionError("app.error.addr1.required")); return errors; } } // End SANameForm When I first execute the form via http://localhost:8080/starrd/app/names.do I immediately (before entering any data or executing the submit button) I get validation errors displayed for name and addr1 and get the following in my log file: 2002-01-21 20:19:19 action: Processing a GET for /app/names 2002-01-21 20:19:19 action: Looking for ActionForm bean under attribute 'nameForm' 2002-01-21 20:19:19 action: Creating new ActionForm instance of class 'com.starrcs.app.SANameForm' 2002-01-21 20:19:19 action: Storing instance under attribute 'nameForm' in scope 'request' 2002-01-21 20:19:19 action: Populating bean properties from this request 2002-01-21 20:19:19 action: Validating input form properties 2002-01-21 20:19:19 action: Validation error(s), redirecting to: /pages/app/Name.jsp Then if I fill in the two fields with data, I do not get validation errors (which is correct). Then this is what is in my log: 2002-01-21 20:19:37 action: Processing a POST for /app/names 2002-01-21 20:19:37 action: Looking for ActionForm bean under attribute 'nameForm' 2002-01-21 20:19:37 action: Creating new ActionForm instance of class 'com.starrcs.app.SANameForm' 2002-01-21 20:19:37 action: Storing instance under attribute 'nameForm' in scope 'request' 2002-01-21 20:19:37 action: Populating bean properties from this request 2002-01-21 20:19:37 action: Validating input form properties 2002-01-21 20:19:37 action: No errors detected, accepting input 2002-01-21 20:19:37 action: Looking for Action instance for class com.starrcs.app.SANameAction 2002-01-21 20:19:37 action: SANameAction: name = data1, addr1 = data2 2002-01-21 20:19:37 action: Processing a POST for /app/welcome 2002-01-21 20:19:37 action: Looking for Action instance for class com.starrcs.app.SAContinueAction -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>