How to validate a form in action class and forward errors to the jsp in struts?

How to validate a form in action class and forward errors to the jsp in struts?

View Answers

April 1, 2011 at 4:11 PM

1)index.jsp:

<html>
<head>
<title>Loading..........</title>
<meta http-equiv="refresh" content="0;URL='formAction'" >
</head>
<body>
Loading.....
</body>
</html>

2)ValidationAction.java:

package net.roseindia.action;

import net.roseindia.model.UserModel;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class ValidationAction extends ActionSupport implements ModelDriven {
    UserModel obUserModel;

    @Override
    public String execute() throws Exception {

        return SUCCESS;

    }

    public void validate() {
        if (obUserModel.getName().length() == 0) {
            addFieldError("name", "Name is required.");
        }
        if (obUserModel.getAge().length() == 0) {
            addFieldError("age", "Age is required.");
        }
        if (obUserModel.getAddress().length() == 0) {
            addFieldError("address", "Address is required.");
        }
    }

    @Override
    public Object getModel() {
        // TODO Auto-generated method stub
        obUserModel = new UserModel();
        return obUserModel;
    }

}

3)UserModel.java:

package net.roseindia.model;

import java.io.Serializable;

public class UserModel implements Serializable {
    private String name;
    private String age;
    private String address;
    private int phone;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public int getPhone() {
        return phone;
    }

    public void setPhone(int phone) {
        this.phone = phone;
    }
}

April 1, 2011 at 4:14 PM

4)userform.jsp:

<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>User form</title>
<s:head/>
</head>
<body>
<h1>User information form...</h1><hr/>
<s:form action="formvalidation">
    <s:textfield key="name" label="Name" />
    <s:textfield key="age" label="Age" />
    <s:textfield key="address" label="Address" />
    <s:submit />
</s:form>
</body>
</html>

5)struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="false" />
    <package name="roseindia" extends="struts-default">
        <action name="formAction" >
            <result name="success">/userform.jsp</result>
        </action>
        <action name="formvalidation" class="net.roseindia.action.ValidationAction">
            <result name="input">/userform.jsp</result>
        </action>
    </package>
</struts>









Related Tutorials/Questions & Answers:
Advertisements