模型驱动:
1.让action实现ModelDriven接口
2.重写getModel()方法
代码如下(配置文件什么的就不写了):
index.jsp:
···
<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>
<%@ taglib prefix=”s” uri=”/struts-tags”%>
</form>
···
User.java:
package com.gpnu.user;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
UserAction:
package com.gpnu.user;
import com.opensymphony.xwork2.ModelDriven;
public class UserAction implements ModelDriven<User>{
private User user;
@Override
public User getModel() {
if(user == null) {
user = new User();
}
return user;
}
public String demo() {
System.out.println(user.getUsername());
System.out.println(user.getPassword());
return "demoSuccess";
}
}
属性驱动:将表单项的name直接设置为要传递的参数名(如username和password),将这些参数作为属性 在action中提供其setter方法即可。代码如下
index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<form action="${pageContext.request.contextPath }/user_demo">
<input type="text" name="username" value="root">
<input type="text" name="password" value="123">
<input type="submit">
</form>
</body>
</html>
UserAction.java:
package com.gpnu.user;
import com.opensymphony.xwork2.ModelDriven;
public class UserAction {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public String demo() {
System.out.println(username);
System.out.println(password);
return "demoSuccess";
}
}
基于ongl方式传递参数:有种特别的情况 待续————————