I'm using the dynamaic validator action form to validate my input fields. The client-side validation works great. The server-side validation does not seem to work. I would disable the javascript on the browser to
test the server-side validation. The message bean on the
jsp will never display any messages. I'm using
Struts 1.1-b3. Any help with the problem would be greatly appreciated. Snipplets of my code below:
Struts-config .
.
.
<!-- Article Form DynaBean -->
<form-bean
name="logonForm"
type="org.apache.struts.action.DynaValidatorActionForm">
<form-property
name="username"
type="java.lang.String"/>
<form-property
name="password"
type="java.lang.String"/>
</form-bean>
.
.
.
<action
path="/logonSubmit"
type="LogonAction"
name="logonForm"
scope="request"
validate="true"
input="/logon.jsp">
<forward
name="success"
path="/logon.jsp"/>
</action>
.
.
.
<!-- ========== Validator plug-in setting settings =================== -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn" >
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml" />
</plug-in>
Validation.xml <?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<form-validation>
<!-- b -->
<formset>
<!-- c -->
<form name="logonForm">
<!-- d,e -->
<field property="username" depends="required,mask">
<!-- f -->
<msg name="mask" key="logon.username.maskmsg" />
<!-- g -->
<arg0 key="logon.username.displayname" />
<!-- h,i -->
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z0-9]*$</var-value>
</var>
</field>
<!-- J -->
<field property="password" depends="required,minlength">
<arg0 key="logon.password.displayname" />
<var>
<var-name>minlength</var-name>
<var-value>5</var-value>
</var>
</field>
</form>
<!-- ... -->
</formset>
</form-validation>
Logon Action package com.anico.slwbsill;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
public final class LogonAction extends Action {
/**
* Login the user.
* The event is logged if the debug level is >= Constants.DEBUG.
*
* @param mapping The ActionMapping used to select this instance
* @param actionForm The ActionForm bean for this request (if any)
* @param request The HTTP request we are processing
* @param response The HTTP response we are creating
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a
servlet exception occurs
*/
public ActionForward perform(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
// Obtain username and password from web tier
DynaActionForm logonForm = (DynaActionForm) form;
String username = ((String)logonForm.get("username"));
String password = ((String)logonForm.get("password"));
System.out.println ("Username: " + username);
System.out.println ("Password: " + password);
// Save our logged-in user in the session,
// because we use it again later.
HttpSession session = request.getSession();
session.setAttribute(Constants.USER_KEY, form);
// Log this event, if appropriate
if (servlet.getDebug() >= Constants.DEBUG) {
StringBuffer message =
new StringBuffer("LogonAction: User '");
message.append(username);
message.append("' logged on in session ");
message.append(session.getId());
servlet.log(message.toString());
}
// Return success
return (mapping.findForward(Constants.SUCCESS));
}
} // End LogonAction
Logon.jsp <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<!-- b -->
<HTML><HEAD><TITLE>Sign in, Please!</TITLE></HEAD>
<BODY>
<logic:messagesPresent>
<UL>
<html:messages id="error">
<LI><bean:write name="error"/></LI>
</html:messages>
</UL>
</logic:messagesPresent>
<html:form action="logonSubmit.do" focus="username">
<TABLE border="0" width="100%">
<TR><TH align="right">Username:</TH>
<TD align="left"><html:text property="username"/></TD>
</TR>
<TR><th align="right">Password:</TH>
<TD align="left"><html

assword property="password"/></TD>
</TR>
<TR>
<TD align="right"><html:submit property="submit" value="Submit"/></TD>
<TDalign="left"><html:reset/></TD>
<TD align="left"><html:cancel
</TABLE>
</html:form>
[ January 23, 2003: Message edited by: Brian Pembroke ]