struts2 是怎样绑定参数到对象的
1个回答
展开全部
1.属性驱动
第一种做法是直接在Action中定义所有需要的属性,然后在JSP中直接用属性名称来提交数据。
LoginAction:
public class LoginAction {
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;
}
}12345678910111213141516171234567891011121314151617
login.jsp
<body>
<form action="login.action" method="post">
姓名:<input type="text" name="username">
密码:<input type="text" name="password">
<input type="submit" value="提交">
</form>
</body>12345671234567
上述做法不好之处是:如果实体类的属性非常多,那么Action中也要定义相同多的属性。
2.定义一个对象
将User对象定义到LoginAction中,然后在JSP中通过user属性来给user赋值:
public class LoginAction {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}123456789101112131415123456789101112131415
login.jsp
<body>
<form action="login.action" method="post">
姓名:<input type="text" name="user.username">
密码:<input type="text" name="user.password">
<input type="submit" value="提交">
</form>
</body>12345671234567
这种做法不好的地方是:JSP页面上表单域中的命名变得太长
3.模型驱动
用ModelDriven机制,让LoginAction实现一个ModelDriven接口,同时实现接口中的方法:getModel()。
public class LoginAction implements ModelDriven<User> {
private User user=new User();
public User getModel() {
return user;
}
}1234567812345678
<body>
<form action="login.action" method="post">
姓名:<input type="text" name="username">
密码:<input type="text" name="password">
<input type="submit" value="提交">
</form>
</body>12345671234567
可见,第三种做法是比较好的,Action和JSP写起来都比较简单。
第一种做法是直接在Action中定义所有需要的属性,然后在JSP中直接用属性名称来提交数据。
LoginAction:
public class LoginAction {
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;
}
}12345678910111213141516171234567891011121314151617
login.jsp
<body>
<form action="login.action" method="post">
姓名:<input type="text" name="username">
密码:<input type="text" name="password">
<input type="submit" value="提交">
</form>
</body>12345671234567
上述做法不好之处是:如果实体类的属性非常多,那么Action中也要定义相同多的属性。
2.定义一个对象
将User对象定义到LoginAction中,然后在JSP中通过user属性来给user赋值:
public class LoginAction {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}123456789101112131415123456789101112131415
login.jsp
<body>
<form action="login.action" method="post">
姓名:<input type="text" name="user.username">
密码:<input type="text" name="user.password">
<input type="submit" value="提交">
</form>
</body>12345671234567
这种做法不好的地方是:JSP页面上表单域中的命名变得太长
3.模型驱动
用ModelDriven机制,让LoginAction实现一个ModelDriven接口,同时实现接口中的方法:getModel()。
public class LoginAction implements ModelDriven<User> {
private User user=new User();
public User getModel() {
return user;
}
}1234567812345678
<body>
<form action="login.action" method="post">
姓名:<input type="text" name="username">
密码:<input type="text" name="password">
<input type="submit" value="提交">
</form>
</body>12345671234567
可见,第三种做法是比较好的,Action和JSP写起来都比较简单。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询