Hi Vinicius, An easy question, have you put the right attribute in the struts-config.xml in the actionMapping ? You need to put the xml attribute validate="true" and an input for the page you want to return if the validation throw an error. An exemple :
<action path="/createMPFromCollection" type="plateinv.actions.plate.MPCreateAction" name="mpCollectionForm" parameter="method" validate="true" input="tiles.plate.master.create.option"> <forward name="createMP" path="tiles.plate.master.create.confirmationMP"/> </action> Charles -----Original Message----- From: Vinicius Carvalho [mailto:[EMAIL PROTECTED] Sent: September 30, 2004 1:43 PM To: [EMAIL PROTECTED] Subject: Validator Hi there! I've been using Struts for quite sometime, but haven't used the validator yet. So I followed the receipt provided by Struts in Action, but got no success at all. Here's what I've done Struts-config is configured for the right plugin My ActionForm extends ValidatorForm and has no validate() method Validator-rules.xml: <validator name="required" classname="org.apache.struts.validator.FieldChecks" method="validateRequired" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" msg="validator.errors.required"> <javascript> <![CDATA[ function validateRequired(form) { var isValid = true; var focusField = null; var i = 0; var fields = new Array(); oRequired = new required(); for (x in oRequired) { var field = form[oRequired[x][0]]; if (field.type == 'text' || field.type == 'textarea' || field.type == 'file' || field.type == 'select-one' || field.type == 'radio' || field.type == 'password') { var value = ''; // get field's value if (field.type == "select-one") { var si = field.selectedIndex; if (si >= 0) { value = field.options[si].value; } } else { value = field.value; } if (trim(value).length == 0) { { if (i == 0) { focusField = field; } fields[i++] = oRequired[x][1]; isValid = false; } } } if (fields.length > 0) { focusField.focus(); alert(fields.join('\n')); } return isValid; } // Trim whitespace from left and right sides of s. function trim(s) { return s.replace( /^\s*/, "" ).replace( /\s*$/, "" ); } ]]> </javascript> </validator> validation.xml: <form name="userForm"> <field property="nome" depends="required"> <msg name="obrigatorio" key="validator.errors.required"/> <arg0 key="prompt.nome"/> </field> </form> ApplicationResources.properties validator.errors.required= O campo {0} é obrigatório prompt.nome=nome And my jsp file looks like this: <html:form action="/atualizaDadosUsuarioAction" name="userForm" type="br.com.auge.errors.action.form.UserForm" onsubmit="return validateRequired(this)"> Nome <html:text property="nome" name="userForm"></html:text><html:errors /><br> </html:form> <html:javascript formName="userForm"/> Well, what is happening is that after I submit with no values at all, nothing happens, it forwards to the correct path. And also, the javascript generated isn't inside a <script></script> block. So it's printed on the page footer. Where did I miss? Thanks Vinicius --------------------------------------------------------------------- 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]