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

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;
}
}

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>
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.