I didn't notice if you got your problem solved but it is a simple spelling
error:
public void setField1(String feld1)
{
this.field1 = field1;
}
should be:
setField1(String field1)
-----Original Message-----
From: Thomas Miskiewicz [mailto:[EMAIL PROTECTED]
Sent: Sunday, June 08, 2003 4:47 PM
To: Struts Users Mailing List
Subject: Validation Problem
Hi!
I now have a strange validation problem. I use this ActionForm class:
package com.mycompany;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.MessageResources;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.lang.String;
public class PostTestForm extends ActionForm
{
private String field1 = "";
private String field2 = "";
private String field3 = "";
private void checkForEmpty(String fieldName, String fieldKey, String
value,
ActionErrors errors)
{
if (value.trim().length() == 0)
{
System.out.println(fieldName + value.trim().length());
ActionError error = new ActionError("error.posttest.field.null",
fieldName);
errors.add(fieldKey, error);
}
}
private void checkForLength(String fieldName, String fieldKey, String
value,
int maxLength, ActionErrors errors)
{
if (value.length() > maxLength)
{
ActionError error = new ActionError("error.posttest.field.length",
fieldName);
System.out.println(maxLength);
errors.add(fieldKey, error);
}
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request)
{
ActionErrors errors = new ActionErrors();
checkForEmpty("field1", "error.field1.empty", getField1(), errors);
checkForEmpty("field2", "error.field2.empty", getField2(), errors);
checkForEmpty("field3", "error.field3.empty", getField3(), errors);
checkForLength("field1", "error.field1.length", getField1(), 5, errors);
checkForLength("field2", "error.field2.length", getField2(), 5, errors);
checkForLength("field3", "error.field3.length", getField3(), 5, errors);
return errors;
}
public void reset(ActionMapping mapping, HttpServletRequest request)
{
field1 = "";
field2 = "";
field3 = "";
}
public String getField1()
{
return field1;
}
public void setField1(String feld1)
{
this.field1 = field1;
}
public String getField2()
{
return field2;
}
public void setField2(String field2)
{
this.field2 = field2;
}
public String getField3()
{
return field3;
}
public void setField3(String field3)
{
this.field3 = field3;
}
}
Everything works fine except the application always claims, that field1 is
empty
even if it's not. value.trim().length() always is = 0 with respect to the
field1.
The content of the HTML-Form looks like this:
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<html:form action="postTest">
<table border="0" cellpadding="0" cellspacing="0"
style="border-collapse:collapse" bgcolor="E7E7E7" width="100%"
height="900px">
<tr>
<td>
<html:errors/>
</td>
</tr>
<tr>
<td>
<input name="field1" type="text" size="17" maxlength="32">
</td>
</tr>
<tr>
<td>
<input name="field2" type="text" size="17" maxlength="32">
</td>
</tr>
<tr>
<td>
<input name="field3" type="text" size="17" maxlength="32">
</td>
</tr>
<tr>
<td>
<input name="submit" type="submit" value="Submit">
</td>
</tr>
</table>
</html:form>
What's wrong???
Regards
Tom
---------------------------------------------------------------------
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]