1、 ActionForm如果要求在传递到Action之前进行校验,必须实现validate方法。这属于服务器端表单验证,数据库的验证不能放在这里。客户端验证用JavaScript。如果要在组装前初始化属性,则要重写reset方法。
2、 DynaActionForm动态ActionForm。动态ActionForm是为了避免标准ActionForm膨胀而设计的,使用动态ActionForm可以获得标准ActionForm的所有功能。
3、 使用动态ActionForm时,在<form-beans>的<form-bean>中指定type为type="org.apache.struts.action.DynaActionFrom"
4、 DynaActionForm通过其类内的一个HashMap进行数据收集和转换,实际上存取数据都是通过这个map来实现的。在Action中用get方法获取属性,然后强制转换。在jsp文件中,用正则表达式:${dynaForm.map.username}的形式进行获取,其中dynaForm是在struts-config.xml中定义的name。
5、 用ActionForm上传文件,需要把form标签中的enctype改为multipart/form-data。文件的封装用Struts给的FormFile。在Action中写为
if(file!=null){
FileOutputStream fos = new FileOutputStream("c:\\"+file.getFileName());
fos.write(file.getFileData());
fos.flush();
fos.close();
}
6、 上传可在struts-config.xml中的<controller>中进行配置。
7、 对没有输入域的属性,jsp脚本得到的是null,el表达式得到的是””。如果有输入域,不输入任何东西,jsp脚本和el表达式得到的都是””。
8、 ActionForm对于int,double,Boolean,和java.sql.Date等类型可以进行自动转换。表单的所有数据都是通过text类型传送,也就是String类型。ActionForm会自动转换了相关类型。但java.util.Date等不会自动转换,需要用户自己写转换方法。
9、 自己写转换类的时候需要实现Converter接口。写了这个转换器类以后要注册。注册方法可以继承ActionServlet类,然后重写其init方法。但是这样做比较麻烦。因此,一般可以重新写一个servlet类,继承HttpServlet类,重写其init方法,在init方法中使用ConvertUtils的静态方法register进行注册。完成以后要在web.xml文件中对该servlet进行声明,由于要求该servlet在tomcat启动的时候就初始化,因此要配置<load-on-startup>选项,值可随意指定一个大于0的数。
10、 另外还可以写一个类,实现Struts的PlugIn接口进行注册。在init方法中用同样的方法进行注册。最后在Struts-config.xml文件中用<plug-in>标签进行配置。在该标签中指定className为该自定义类的完整路径即可。
ActionForward
1、 ActionForward在默认情况下输入转发,如果在struts-config.xml中的<forward>中指定redirect为true,则会重定向。转发只需要一个request,重定向则需要两个request。重定向的含义是重当前地址定向到目标地址,地址栏的地址会改变,而转发则不会。
2、 转发时找<forward>是先在局部找,找不到再到全局查找。一些公共页面,比如出错页面,写在<global-forwards>中。
3、 使用Struts框架,一般情况下都让Struts来做页面转向。但若是遇到特殊情况下,一定需要自己转向。可以使用response的sendRedirect方法来进行。其参数需要用request.getContextPath()再加上一个页面即可。同时需要返回null,让Struts不再进行转向。
4、 要实现动态的ActionForward,需要自己定义一个ActionForward实例,然后调用setPath方法,最后返回该实例即可。举例:ActionForward af = new ActionForward(); af.setPath(“/page”+i+”.jsp”); return af;
5、 className这个属性,是Struts实现的一个扩展性。当ActionForward不能满足自己的需求,可以自己写一个类,继承ActionForward,然后用className指定该类的全路径,Struts就会使用你自定义的类来进行所有页面转向。
ActionMapping
1、 在struts-config.xml中每个action标签对应一个ActionMapping实例。
2、 Action标签的forward属性,也是做页面转向用的。通过这个属性,和forward标签,可以把项目中的所有页面转向都配置到struts-config.xml中。
3、 unknown属性的配置,主要是为了处理页面不存在的情况。比如在地址栏随便输入一个不存在的地址,如果不配置unknown属性,会出现404错误,即页面找不到。但如果配置了一个unknown属性,当地址不存在时,服务器会自动寻找配置了unknown属性的地址,然后转向到该地址。一般情况,该属性用于容错处理。注意:该属性只对do起作用。在所有action标签中,总共只能配一个unknown属性。
4、 forward和type属性是互斥的,只有一个生效。Forward优先级高。
分享到:
相关推荐
一、准备工作及实例 3 ...小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 ...
1.5 小结 第2章 myedipse开发工具对各种框架的支持 2.1 使用jsp的两种模式 2.2 struts框架的实现 2.3 hibernate框架的实现 2.4 jpa框架的实现 2.5 spring框架的实现 2.6 jsf框架的实现 2.7...
相较于 Struts1.x 版本,Struts2 提供了更强大的功能与灵活性,它不仅支持传统的表单提交方式,还提供了更为灵活的 Ajax 支持,以及更丰富的标签库等特性。 #### 二、Struts2架构与配置 1. **基础配置**:Struts2 ...
- AOP编程部分:包括核心概念、指定代理、自动代理、AspectJ、使用注解、知识小结等章节。 8. 学习态度与习惯 在教程中,强调了学无止境、追求技术进步的理念,并鼓励学习者将学习作为一种习惯。教程还传递了知识...
根据给定文件的信息,我们可以提炼出关于SSH整合实例与Struts2框架的配置与使用的关键知识点,虽然文件标题和描述主要关注SSH,但文件内容详细介绍了在MyEclipse2013中配置Struts2的过程,因此我们将重点放在Struts2...
12.1.2 Struts 2.0与Struts 1.x框架的区别 215 12.2 MyEclipse创建基于Struts 2.0框架的项目 215 12.2.1 下载Struts 2.0开发包 216 12.2.2 创建Struts 2.0项目 216 12.2.3 配置Struts 2.0项目 217 12.2.4 创建Struts...
**3.6 课后小结** 本章主要讲解了Java反射机制的基本概念、使用方法和应用场景,强调了其灵活性和在框架设计中的重要性。 **3.7 课后习题** 设计习题,让学习者通过实践加深对反射的理解,如编写一个工具类,动态...
小结 永远记住:自始至终,实践是学习Java技术历程中极其重要的一环。脱离了实践,是学不好技术的! Java学习、实践之路依然没有银弹,况且一步步走来,要学的东西很多,勤奋是金! 善于利用Internet上众多的资源,多...
**2.4 小结** - 总结两种方式的优缺点,强调使用 MyEclipse 的便捷性。 #### 四、Eclipse 的基础概念与使用 **3.1 界面布局** - 详细介绍 Eclipse 的菜单、工具栏、视图、编辑器等组成部分及其功能。 **3.2 ...