Action中使用POJO
Struts2能够自动为Action的属性赋值,也能为属性的属性即POJO的属性赋值。Struts2中推荐使用POJO,这样面对对象化会更好一些,也更简单。相对于Struts1.x中使用POJO。Struts2.x更贴心一些。
?
1.图书馆Action
?
虽然普通的javaBean也可以用做Action,但是最好跟业务中的POJO区分开来,例如,这里使用Book作为业务POJO类,使用BookAction作为Action类,里面包含一个Book类型的属性,用于接受浏览器提交的数据。BookAction定义了3种操作:显示添加书籍页面、添加书籍、列出所有书籍、清空书籍。代码如下:
?
?
?
提示:这里把method属性用通配符定义为{1},表示使用initAddBook.action访问时,执行initAdd()方法,使用llistBook.action访问时,执行list()。
?
?
4.jsp添加、列表页面
?
jsp中使用Struts2标签显示数据。仍然使用Struts2表单标签生成默认的页面布局。显示URL时使用的是<struts:url/>标签,该标签会在运行时将“.action”自动添加在后面。如果Struts.properties中修改了“.action”后缀,该标签也会自动添加为新的后缀。添加书籍的页面代码如下:
?
?
?除了会追加“.action”后缀,<struts:url/>默认还会追加地址栏参数。有些时候这个特性很好用,但并不是所有情况下都合适。可以使用<s:url action="initAddBook" includeParams="none"/>将禁止本标签的自动追加参数特性。或者在struts.properties中禁止所有的<s:url/>的自动追加参数特性。代码为:
?
?注意: 本例使用了POJO作为Action类,没有继承ActionSupport,也没有实现IAction接口。但是如果要使用Struts2提供的数据验证、错误显示等,则仍需要继承ActionSupport类。
?
?
?