模型驱动:采用模型驱动方式(最常用)
缺点:只能同时向一个对象中封装数据。
利用ModelDriven<T>接口来实现。
Input.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="deal2.action">
用户名:<input type="text" name="name"><br>
密码:<input type="password" name="pass"><br>
年龄:<input type="text" name="age"><br>
生日:<input type="text" name="birthday"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
Out.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
用户名:<s:property value="name"></s:property><br>
密码:<s:property value="pass"></s:property><br>
年龄:<s:property value="age"></s:property><br>
生日:<s:property value="birthday"></s:property><br>
</body>
</html>
Struts.xml
<action name="deal2" class="Action.deal2" >
<result name="out">/模型驱动out.jsp</result>
</action>
Bean.java
package bean;
public class user {
private String name;
private String pass;
private String age;
private String birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
Action.java
package Action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import bean.user;
public class deal2 extends ActionSupport implements ModelDriven<user> {
private user u=new user();
@Override
public user getModel() {
// TODO Auto-generated method stub
return u;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return "out";
}
}