Stuts学习day2-自定义参数-数据校验

 

一、自定义结果类型

1、编写一个类,实现com.opensymphony.xwork2.Result接口。

在该方法中可以拿到ServletAPI去完成你的功能

2、声明自定义的结果类型:先声明后使用

3、使用

 

小技巧:自定义的结果视图,大家都要用时

二、封装请求参数(很重要)

使用框架的意义:提升开发效率。节省的时间去研究业务。

 

2.1封装请求参数的方式:

  1. 1、用动作类作为模型对象,直接封装请求参数

a、通过配置文件注入静态(不变)参数

注:静态参数注入是由一个名字为staticParams拦截器完成的。

b、注入动态(用户输入的)参数

编写原则:表单的输入域的名称和动作类中的属性名(gettersetter)保持一致。

注:动态参数注入是由一个名字为params拦截器完成的。

 

  1. 2、动作类和模型对象分离

---------------------------------------------

--------------------------------------------

-----------------------------

总结:框架会探测student这个模型是否为空,如果为空,注入他的实例,分别调用该对象的属性,注入值。

  1. 3、(模型和动作分开)模型驱动:ModelDriven

 

-----------------

-----------------------

 

注:实际上是一个名字为modelDriven拦截器完成的。该拦截器会在调用动作方法前,调用getModel(),得到模型对象,他接着把该模型对象压到了值栈的栈顶。表单的username的值,框架就会调用栈顶对象的setUsername方法。(此处暂时记住)。

 

 

关键点:实现ModelDriven接口;模型对象要自己实例化;

2.2封装集合或Map的数据(用的较少)

a、封装集合,批量添加时用

b、封装到Map中,批量添加时用

三、类型转换(明白,开发中几乎不写)

1、用户所有的输入都是字符串

2、显示出来的都是字符串

总结:类型转换。String--->其他类型(存数据时);其他类型----->字符串(显示数据时)

 

Struts2中的类型转换器的继承体系

3、自定义类型转换器

a、编写一个类,继承StrutsTypeConverter

b、注册类型转换器

b.1局部类型转换器:给某个动作用的

在动作类所在的包中,建立一个“动作类名-conversion.properties”的配置文件,内容如下:

b.2全局类型转换器:大家都来用

在构建路径的顶端(WEB-INF/classes)目录下建立名称为xwork-conversion.properties的配置文件,按照要转换的目标类型进行转换器的配置。

 

4、转换失败时的数据回显和错误提示

前提:动作类需要继承ActionSupport

出现转换失败时,由一个名字为conversionError拦截器负责处理的。会把错误信息封装起来,并且转向一个叫做input的逻辑视图(用于回显数据)。

更改默认的错误提示:

在动作类的包中,建立一个“动作类名.properties”的配置文件(实际上是一个语言消息包),内容如下:

 

四、数据校验(经常做)

4.1校验的方式

客户端校验:JavaScript

服务器端校验:代码

实际开发:客户端+服务器端校验

 

4.2Struts2的服务器校验

前提:动作类需要继承ActionSupport

验证是由一个名字为validation(声明式校验)、workflow(错误提示)完成的

a、编程式校验:动作类中写代码

a.1针对动作类中的所有动作方法进行校验

在动作类中,覆盖掉validate方法

a.2针对动作类中的指定方法进行校验

方式一:麻烦

方式二:使用注解,简单

b、声明式校验(推荐):写配置文件

把校验规则和消息提示放到配置文件中。

 

b.1针对动作类中的所有动作方法进行校验

在动作类所在的包中,建立名字为"动作类名-validation.xml"的配置文件,内容如下:

b.2针对动作类中的指定方法进行校验

方式一:简单。使用@SkipValidation注解

方式二:麻烦。

动作类名-动作别名(指struts.xml中动作的名称)-validation.xml

 

专题:Struts2框架提供的内置验证器

xwork-core-2.3.15.3.jar\com\opensymphony\xwork2\validator\validators\default.xml

b.3自定义声明式校验器

a、编写一个类,继承FieldValidatorSupport,定义一个基于字段的验证器。

b、定义验证器后才能使用。

在WEB-INF/classes目录下,建立一个名称为validators.xml的配置文件,内容如下:

c、日后就可以在声明式验证中使用了

 

 

五、国际化(鸡肋)

六、Struts2中的拦截器(很重要)

七、文件的上传和下载

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值