You need to use <ww:textfield> if you want the field errors to show up next to the input fields - just like signup.jsp and userForm.jsp use.
Matt On 7/31/07, DreamBig <[EMAIL PROTECTED]> wrote: > > I use 1.9 WebWork option. I want to validate username and confirmed password > in register.jsp, just same as AppFuse's Signup page. > The validators seems to work. But the warning message above the register > form cannot be displayed. I expect the messages like > "Warning Username is a required field. > ..." > > I took 2 days to play with the xwork.xml, error.jsp, messages.jsp etc. But > <ww:if test="hasFieldErrors()"> in messages.jsp appears not valid. Could you > guys give any leads? I can provide more info if needed. Thanks a lot, -Mike > In xwork.xml > ... > <action name="register" class="userAction" method="create"> > <interceptor-ref name="validationStack"/> > <result name="success">/WEB-INF/pages/user/login.jsp</result> > <!-- > <result name="input">/WEB-INF/pages/user/register.jsp</result> > --> > <result name="input" type="redirect">/error.jsp</result> > <result name="error" type="redirect">/error.jsp</result> > </action> > > My validator User-validation.xml > <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" > "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd"> > <validators> > <field name="user.userName"> > <field-validator type="requiredstring"> > <message key="errors.required"/> > </field-validator> > </field> > <field name="user.password"> > <field-validator type="requiredstring"> > <message key="errors.required"/> > </field-validator> > </field> > <field name="user.confirmPassword"> > <field-validator type="requiredstring"> > <message key="errors.required"/> > </field-validator> > <field-validator type="fieldexpression"> > > (user.confirmPassword.equals(user.password)) > > <message key="errors.twofields"/> > </field-validator> > </field> > </validators> > > My UserAction-validation.xml > <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" > "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd"> > <validators> > <field name="user"> > <field-validator type="visitor"> > false > <message/> > </field-validator> > </field> > </validators> > > My /web/errors.jsp is same as appfuse demo > <%@ page language="java" isErrorPage="true" %> > <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> > <%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> > <%@ taglib uri="webwork" prefix="ww" %> > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > > <html> > <head> > <title><fmt:message key="errorPage.title"/></title> > <link rel="stylesheet" type="text/css" media="all" href="<c:url > value="/styles/default.css"/>" /> > </head> > > <body> > <div id="screen"> > <div id="content"> > <h1><fmt:message key="errorPage.heading"/></h1> > <%@ include file="/common/messages.jsp" %> > <% if (exception != null) { %> > <pre><% exception.printStackTrace(new java.io.PrintWriter(out)); > %></pre> > <% } else if > ((Exception)request.getAttribute("javax.servlet.error.exception") != null) { > %> > <pre><% > ((Exception)request.getAttribute("javax.servlet.error.exception")) > .printStackTrace(new java.io.PrintWriter(out)); > %></pre> > <% } %> > </div> > </div> > </body> > </html> > > My /web/common/messages.jsp is same as appfuse demo > <%-- ActionError Messages - usually set in Actions --%> > <ww:if test="hasActionErrors()"> > <div class="error" id="errorMessages"> > <ww:iterator value="actionErrors"> > <c:url value= " > alt="<fmt:message key="icon.warning"/>" class="icon" /> > <ww:property/><br /> > </ww:iterator> > </div> > </ww:if> > > <%-- FieldError Messages - usually set by validation rules --%> > <ww:if test="hasFieldErrors()"> > <div class="error" id="errorMessages"> > <ww:iterator value="fieldErrors"> > <ww:iterator value="value"> > <c:url value= " > alt="<fmt:message key="icon.warning"/>" class="icon" /> > <ww:property/><br /> > </ww:iterator> > </ww:iterator> > </div> > </ww:if> > > <%-- Success Messages --%> > <c:if test="${not empty messages}"> > <div class="message" id="successMessages"> > <c:forEach var="msg" items="${messages}"> > <c:url value= " > alt="<fmt:message key="icon.information"/>" class="icon" /> > <c:out value="${msg}" escapeXml="false"/><br /> > </c:forEach> > </div> > <c:remove var="messages" scope="session"/> > </c:if> > > Finally my register.jsp > <%@ include file="/common/taglibs.jsp" %> > > <title><fmt:message key="user.title"/></title> > <%--<content tag="heading"><fmt:message key="user.heading"/></content>--%> > <meta name="menu" content="MainMenu"/> > <%--<p><fmt:message key="user.message"/></p>--%> > > <table width="780" border="0" align="center" cellpadding="0" > cellspacing="0"> > <tr> > <td valign="top"> > <table width="100%" height="300" border="0" cellpadding="0" > cellspacing="0"> > <tr> > <td align="center" valign="top" > bgcolor="#FFFFFF"><h5><br> > userRegister</h5> > <table width="80%" border="0" cellpadding="0" > cellspacing="0" bgcolor="#FEFFF0" > class="register2_black_12"> > <tr> > <td align="center" valign="top"><br> > > <ww:form name="'registerForm'" > action="'register'" method="'post'" validate="true"> > <table width="100%" border="0" > cellspacing="0" cellpadding="0"> > > <%-- XX > <tr> > <td height="25" > align="right">* userName: > </td> > <td align="left"><input > value="" type="text" name="user.userName"></td> > </tr> > <ww:if test="(user.userName==null > || user.userName.size==0)"> > <div> <fmt:message > key="user.userName.null"/> </div> > </ww:if> > --%> > <tr> > <td height="25" > align="right">* <fmt:message key="user.userName"/>: > </td> > <td align="left"><input > value="" type="text" name="user.userName"></td> > </tr> > <%-- XX --%> > > <tr> > <td height="25" > align="right">* password: > </td> > <td align="left"><input > type="password" value="" name="user.password"> > </td> > </tr> > <tr> > <td height="25" > align="right">* confirm password: > </td> > <td align="left"><input > type="password" value="" name="user.confirmPassword"> > </td> > </tr> > > <tr> > <td height="25" > align="right">* email:</td> > <td align="left"><input > type="text" value="" name="user.email"></td> > </tr> > > > <tr> > <td height="25" > align="right">realName:</td> > <td align="left"><input > name="profile.realName" type="text" value=""> > </td> > </tr> > <tr> > <td height="25" > align="right">Brithday:</td> > <td align="left"><input > name="profile.brithday" type="text" value=""> > </td> > </tr> > <tr> > <td height="25" > align="right">Country:</td> > <td align="left"><input > name="profile.country" type="text" value=""> > </td> > </tr> > > <tr> > <td height="25" > align="right">Province:</td> > <td align="left"><input > name="profile.province" type="text" value=""> > </td> > </tr> > > <tr> > <td height="25" > align="right">Address:</td> > <td align="left"><input > name="profile.address" type="text" value="" > > size="50"></td> > </tr> > > <tr> > <td height="25" > align="right">phone:</td> > <td align="left"><input > name="profile.phone" type="text" value=""></td> > </tr> > > </table> > > <input type="submit" align="center" > name="RegisterSubmit" > value="Register"/> > > > <br/> > > </ww:form> > > <br> > > </td> > </tr> > </table> > <br></td> > </tr> > </table> > </td> > </tr> > </table> > > > > -- > View this message in context: > http://www.nabble.com/Cannot-display-validation-error-message-with-WebWork-tf4194648s2369.html#a11929275 > Sent from the AppFuse - User mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- http://raibledesigns.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
