struts2 表单
3. struts2中 action接收表单数据的三种方式
public class Book {
private String bookname; // 书名
private String authorName;// 作者
//getter setter方法
}
public class User {
private String username; // 用户名
private String pasword; // 密码
private List<Book> books; // 喜欢看的书
//getter setter方法
}
1.普通属性 定义参数名和getter,setter方法 参考 login1.jsp
<form action="acceptParam1.action" method="post">
<div>
用户名:<input type="text" name="username"></input>
</div>
<div>
<input type="submit" value="登录" />
</div>
</form>
public class AcceptParamAction1 {
private String username;
//getter setter方法
public void test(){
System.out.println("用户名" + username);
}
}
2.领域对象 定义对象名和getter,setter方法
<form action="acceptParam2.action" method="post">
<div>
用户名:<input type="text" name="user.username"></input>
</div>
<div>
<input type="submit" value="登录" />
</div>
</form>
public class AcceptParamAction2 {
private User user;
//getter setter方法
public void login() {
System.out.println("第二种接收参数 的方法:用户名" + user.getUsername());
}
}
3.模型驱动 实现ModelDriven接口,实例化一个对象 参考 login3.jsp
<form action="acceptParam3.action" method="post">
<div>
用户名:<input type="text" name="username"></input>
</div>
<div>
最喜欢的书名1:<input type="text" name="books[0].bookname"></input>
</div>
<div>
最喜欢的书名2:<input type="text" name="books[1].bookname"></input>
</div>
<div>
<input type="submit" value="登录" />
</div>
</form>
public class AcceptParamAction3 implements ModelDriven<User> {
private User user = new User();// 实例化对象
@Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
public String login() {
System.out.println("第二种接收参数 的方法:用户名" + user.getUsername());
System.out.println("第二种接收参数 的方法:用户最喜欢的书名1" + user.getBooks().get(0).getBookname());
}
}
4.struts2验证框架,完成表单验证
1.后台重写validate()方法,这个方法是对这个类中的所有方法都进行验证,不想被验证的方法使用注解@SkipValidation
//addFieldError是ActionSupport类中的方法
@Override
public void validate() {
if (user.getUsername() == null || "".equals(user.getUsername())) {
this.addFieldError("username", "用户名不能为空");
}
}
2.struts.xml文件中定义一个input的对应的返回页面
<result name="input">/login.jsp </result>
3.前台login.jsp中 用struts2的核心标签库
<!-- struts标签 -->
<%@ taglib prefix="s" uri="/struts-tags"%>
<div>
用户名:<input type="text" name="username"></input>
<s:fielderror name="username"></s:fielderror>
</div>