文档章节

Struts(二)

 梦醒时分_追梦
发布于 2016/11/09 22:13
字数 1259
阅读 10
收藏 1

1、请求参数封装:

         明确:封装参数有两种情况。

         静态参数封装:

                   我们学习它不是为了掌握如何封装静态参数,而是了解一个事情:

                            我们没有做的事,不是没人做,而是框架的拦截器为我们已经实现了。

                   封装静态参数是由一个叫做staticParams的拦截器实现的

         动态参数封装:(是我们学习的重点)

                   属性驱动:

                            动作类和模型在一起

                                     要求表单中的name取值和动作类的get/set方法必须一致

                   是一种叫做params的拦截器为我们封装的

                    动作类和模型分开

                                     要求动作类中需要有给模型(JavaBean),并且有get/set方法。

                                     表单中name属性取值的写法:模型名称.属性名称(需要能找到get/set方法)

                    模型驱动:(一般使用这个)

                            实现要求:

                                     1、要求实现一个ModelDriven接口

                                     2、提供接口中抽象方法的实现,返回模型对象

                                     3、定义一个模型对象,必须实例化好。new出来

是由一个叫做params的拦截器为我们封装的,但是在params之前需要先执行一个modelDriven的拦截器

它在同一个动作类中只能有一个模型数据

2、参数封装的一些细节:

         a、数据类型的问题:

                   明确:表单中提交的数据类型(除去文件)只有两个。

                         一个是字符串,一个是字符串数组。

         b、数据类型的转换

                   框架会自动为我们转换的:

                            1、基本类型自动转换

                            2、字符串数组会按照逗号+空格拼接成字符串

                            3、日期会按照本地格式自动转换成日期对象

                                     本地格式:yyyy-MM-dd

         c、类型转换失败的异常处理

                   非常重要(不仅适用于类型转换失败,几乎适用于所有struts2框架运行异常的处理)

                   此处最关键点就是:input结果视图

                   当页面出现异常:

         提示是没有一个input视图被定义时,我们要做的就是配置一个input结果视图。

        视图前往的页面,是从哪来回哪去。并且前往的方式要用dispatcher[dɪ'spætʃə]

         d、借助struts2的异常提示标签,显示错误信息

                   s:fielderror标签:

                            指的就是字段错误。其实就是表单中属性数据有错误。

         s:actionerror标签:

                            指的就是动作错误。在执行动作方法时,数据有错误。

         e、类型转换处理的一些思想

                   解决保存:MM/dd/yyyy日期的方式需要用到struts2的自定义类型转换器。

        转换思想:

                       保存到数据库:

                            转换就是把字符串或者字符串数组转成其他数据类型

                       从数据库中取数据显示:

                            把其他数据类型转成字符串。

                   自定义类型转换器

                            编写步骤:

                                     1、定义一个普通类,继承StrutsTypeConverter

                                               对里面的两个抽象方法提供具体的转换实现。

                                     2、在需要使用类型转的实体类所在的包下,创建一个properties文件

                                               文件的命名规范:

                                                        实体类名称-conversion.properties

                                               文件的内容:

                                                        实体类中需要用类型转换的属性=类型转器全类名

                                                        例如:

                                                        birthday=cn.itcast.utils.MyTypeConverter

                            注意:

                                当我们自定义类型转换器之后,默认的类型转换就失效了。

         f、struts2表单标签的数据回显

                   需要使用struts2的表单标签

                            s:form:用于创建一个form表单

                                action:请求的动作名称。此处可以不写后缀,它会自动补全。

                                         也不用写contextPath,它也会自动补全。

                                method:请求的方式。默认就是Post,可以不写。

                                namespace:动作所在的名称空间。

                            s:textfield:用于创建文本框。相当于input type="text"

                            s:submit:用于创建一个提交按钮。相当于input type="submit"

                  struts2的表单标签:

                            会自带回显功能。其实本质就是给value属性赋值。

                    关于struts2表单标签和HTML表单标签的选择问题:

                            如果需要高效率:选择HTML标签

                            如果需要便捷性:选择struts2标签。

3、全局结果视图和局部结果视图

         全局结果视图的配置方式:

                   标签:

                            global-results。

                   在标签内部写:result。和我们之前的配置方式就一样了。

                   例如;

                            <global-results>

                                     <result name="login">/login.jsp</result>

                            </global-results>

全局结果视图的作用范围:

                   所有的动作都适用。前提是必须继承定义全局结果视图的包。

         全局结果视图和局部结果视图的优先级:

                   先找局部结果视图,再找全局结果视图。

4、访问ServletAPI的另外两种方式:

         第一种:通过实现接口的方式

            第二种:通过ActionContext对象来访问三个域

5、封装集合数据

         a、封装List结构的集合数据

        b、封装Map结构的集合数据

© 著作权归作者所有

上一篇: Struts(三)
下一篇: Struts(一)
粉丝 5
博文 10
码字总数 21413
作品 0
昌平
私信 提问
MyEclipse中删除对Struts、Hibernate、Spring的支持

最近碰到添加了ssh的支持,但又发现有些包,或配置文件不正确,想重新添加,但MyEclipse没有自动重新加载功能,于是到网上搜索了相关内容,总结如下: 一、首先是撤消MyEclipse对Struts的支持...

Sandy_wu
2013/06/07
0
0
struts-2.3.16开发环境搭建

一、拷jar包 最小jar包要求(the minimal required Struts 2 framework Jar files): struts2-core-2.3.16.jarxwork-core-2.3.16.jarcommons-logging-1.1.3.jarognl-3.0.6.jarcommons-fileu......

techsboy
2014/04/22
0
0
Struts 2再曝远程代码执行漏洞S2-037

导读 今年4月份,Apache Stuts 2之上发现的S2-033远程代码执行漏洞,以迅雷不及掩耳之势席卷而来。其利用代码很快就在短时间内迅速传播。而且官方针对这个高危漏洞的修复方案还是无效的。 悲...

linuxprobe
2016/06/22
0
0
struts2配置文件struts.xml的目录问题

struts2的配置文件struts.xml默认是直接在src目录下。这样我们在部署描述符web.xml中,指定struts2的过滤器时,直接如 清单一: <filter> <filter-name>struts2</filter-name> <filter-clas......

heiyexue
2014/08/04
0
0
CNNVD关于Apache Struts2 S2-057安全漏洞情况的通报

  近日,国家信息安全漏洞库(CNNVD)收到关于Apache Struts2 S2-057安全漏洞(CNNVD-201808-740、CVE-2018-11776)情况的报送。成功利用漏洞的攻击者可能对目标系统执行恶意代码。Apache ...

FreeBuf
2018/08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

FPGA 设备 USB Platform Cable USB

lsusbFuture Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC

MtrS
今天
4
0
lua web快速开发指南(6) - Cache、DB介绍

"数据库"与"缓存"的基本概念 数据库与缓存是服务端开发人员的必学知识点. 数据库 "数据库"是一种信息记录、存取的虚拟标记地点的集合统称. 比如现实生活中, 我们经常会用到文件柜、书桌等等数...

水果糖的小铺子
今天
9
0
Oracle分页查询语句的写法

Oracle分页查询语句的写法 Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,Oracle分页查询语句基本上可以按本文给出的格式来进行套用。   Oracle分...

康师傅
昨天
5
0
java并发图谱

1527
昨天
2
0
Mybatis之拦截器Interceptor

使用mybatis时用PageHelper进行分页,用到了PageInterceptor,借此了解下mybatis的interceptor。Mybatis的版本是3.4.6,MybatisHelper的版本是5.1.3。 1、PageInterceptor 先上一段代码,如下...

克虏伯
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部