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>
posted on 2017-09-21 11:45  dreamstar  阅读(58)  评论(0编辑  收藏  举报