In Struts 2 transferring the data to
the domain object is automatically done by the params interceptor.
You just need to
create a domain object as a JavaBeans property and the corresponding getter and
setter methods.
The framework will
automatically initializes the domain object and transfers the form data. The
UserAction class contains the following code.
public class UserAction extends ActionSupport{
private User user;
public UserAction() {
}
public String
execute() {
return SUCCESS;
}
public User getUser()
{
return user;
}
public void setUser(User user) {
this.user = user;
}
}
To refer the user
attributes like name, age etc. we need to first get the user object and then
access its properties. For example to access the user's age in the Action you
need to use the following syntax.
getUser().getAge();
The User class
contains the following attributes and the corresponding getter and setter
methods.
public class User {
private String name;
private int age;
private String sex;
private String[] hobby;
private String country;
public String
getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex()
{
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String[]
getHobby() {
return hobby;
}
public void setHobby(String[] hobby) {
this.hobby = hobby;
}
public String
getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
}
In the jsp page the
user attributes cannot be directly referenced. Since the attributes we refer in
the jsp page belongs to the User object we need to go one level deeper to
reference the attributes. To refer the user's age, the value of the name
attribute should be
name="user.age"
The index.jsp page
contains the following code.
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 01 Transitional//EN"
<%@taglib
uri="/struts-tags" prefix="s" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>User Details</title>
</head>
<body>
<s:form action="UserAction" >
<s:textfield name="user.name" label="User Name" />
<s:textfield name="user.age" label="Age" />
<s:radio name="user.sex" label="Sex" list="{'M','F'}" />
<s:checkboxlist name="user.hobby" label="Hobby" list="{'Music','Art','Dance'}" />
<s:select name="user.country" label="Country" list="{'Select','India','USA','France',
'Spain'}" />
<s:submit />
</s:form>
</body>
</html>
The result.jsp page
contains the follwing code.
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 01 Transitional//EN"
<%@taglib
uri="/struts-tags" prefix="s" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>User Details</title>
</head>
<body>
<h2>User Details</h2>
<hr>
User Name :<s:property value="user.name" />
Age :<s:property value="user.age" />
Hobbies :<s:property value="user.hobby" />
Country :<s:property value="user.country" />
</body>
</html>
On executing the
example the following page will be displayed to the user.
On entering the
user details and clicking the Submit button the following page will be
dispalyed.
No comments:
Post a Comment