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>