既然说到了Struts 2的数据校验,我们该怎么去实现呢?又是通过什么来实现呢?
就让我带着大家一起来走进Struts 2的数据校验吧。
首先我们会想到在Stuts 2的登录案例中我们定义了一个Action接口的一个实现类,那数据校验是不是也要去实现Action呢?没错,就是这样的。但是它并没有直接去实现Action接口,而是通过继承ActionSupport类间接去实现Action接口
继承进行数据校验的ActionSupport类,既然我们继承ActionSupport类后要去用一个数据校验的方法(validate()),那它具体实现什么呢?
值得注意的是,validate()没通过则execute()没有被执行
在进行判断是否为空时,会有一个保存值的方法==addFieldError(),方法中不能key尽量别跟jsp标签的name属性值一样,虽然能把值给到jsp,但是它帮你自动形成一个UI的标签,会造成前台数据混乱,所以尽量重新命名,然后用<s:property value="" />来接收值就行了。
点击debug就会显示如下:根据property标签来进行获取addFieldError()中key值