struts2 是怎样绑定参数到对象的

 我来答
黑马程序员
2017-03-13 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部
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写起来都比较简单。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式