Improve company productivity with a Business Account.Sign Up

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2371
  • Last Modified:

Struts: How to handle server side validation when using dynamic forms!!!

Hi! I am using struts 1.2 and is new to struts. Since I am using dynamic forms how do I do server side validation? I mean, I want to authenticate username and password from my form against the database. ( The client side validation is done with the validator framework. ) Should I do that in my Action class? And, if I do the authentication in the action class how do I set the action error object if there is an error to come back to the form and print it. Note: I am using hibernate as my ORM tool. The other question is: why is my client side validation not working?

here is my jsp:
    <html:base />
       <html:javascript formName="loginFormBean" dynamicJavascript="true"
<html:form action="/login" method="post" onsubmit="return validateLoginFormBean(this);">
      <table border="0">
          <td><html:text property="username" size="15" maxlength="30"/></td>
          <td><html:text property="password"/></td>
          <td colspan="2" align="center">

Here is the class

public class LoginAction extends Action {
    // --------------------------------------------------------- Instance Variables
    protected final Log logger = LogFactory.getLog(getClass());
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                    HttpServletRequest request, HttpServletResponse response) {
            DynaActionForm loginForm = (DynaActionForm) form;
            // TODO Auto-generated method stub
  "Forwarding from login action class");
            return mapping.findForward("success");


Here are the relevant mappings in struts-config:

      <form-bean name="loginFormBean"  type="org.apache.struts.validator.DynaValidatorActionForm">
      <form-property name="username" type="java.lang.String"/>
      <form-property name="password" type="java.lang.String"/>
      <forward name="success" path="/jsp/showmenu.jsp"/>


Here is my validation.xml:

 <form name="loginFormBean">
    <field property="username" depends="required, minlength">
       <arg key="loginFormBean.username"/>
    <field property="password" depends="required,mask,minlength">
         <arg key="loginFormBean.password"/>

1) how do I set the action error object in my loginAction class if there is an error with authentication?

2) Some how the client side validation is trigerring, without any error. I mean even if I do enter anything in the textbox and click submit, I am being forwarded to the next page (showmenu.jsp)

I think I am missing something small for my second problem........
  • 2
  • 2
1 Solution
In form beans you are doing wrong

Inseted of <form-bean name="loginFormBean"  type="org.apache.struts.validator.DynaValidatorActionForm"> write

<form-bean name="loginFormBean"  type="org.apache.struts.validator.DynaValidatorForm">

For further reference go thru follwinglink StrutsValidationFramework_speakernoted.pdf

Hope this will solve your problem :)

subircAuthor Commented:
No still not working!!!  When I am clicking submit (without entering anything in username + password) a error pops up saying

error: _required is undefined
Somewhere that underscore is coming....


Can you post complete error trace.. so we can go thru easily..
subircAuthor Commented:
I think I have solved the problem another way. I am writing all my client side validation in the Action Class itself using Action Messages. The server side is also done there. There is no error trace unfortunately. It's that when I was clicking on submit it was forwarding to the success page without doing any validation. You already have seen my validation.xml and struts-config. How do I get back my points?

Closed, 40 points refunded.
Site Admin
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now