天天看点

Struts2中的数据回显

Struts2中我们为什么要用数据回显呢?

比如,当我们提交的数据有错误时,这时候我们在表单页面就需要提示错误信息。
           

就拿上一篇中的数据类型转换的问题来说明数据回显。

当我们没有实现自定义的数据类型转换器,那我当我们提交  9/1/1999 这样的日期时就会出错。
           

那么我们怎样将错误信息回显呢。

首先我们需要在struts配置文件中,写入input类型的result结果,当接收到错误信息跳转回表单界面。

Struts2中的数据回显

其实这时候并不会显示回显的信息,因为我们的表单并没有编写接收并显示回显信息的功能。

Struts2当然也实现了这一功能。

实现数据的回显,必须使用struts2的表单

struts2的form和html表单差不多
        action:可以直接写动作
        method:默认是post
        enctype:表单的编码是MIME编码

    发生类型转换错误时,为什么结果视图能够实现回显
    拦截器conversionError实现的这个功能
    注意:动作类必须继承actionSupport
           

下面来看一下Struts的表单

<!--<s:fielderror/>-->
<s:head></s:head><!-- 显示为红色 -->

<s:form action="regist.action">
        <s:textfield name="username" label="用户名" requiredLabel="true" requiredPosition="left"></s:textfield>
        <s:password name="password" label="密码" showPassword="true"></s:password>
        <s:textfield name="birthday" label="出生日期"></s:textfield>
        <s:submit value="注册"></s:submit>
     </s:form>
           

我们上面的head标签把回显的错误信息显示为红色。

还有我们注销的fielderror标签可以将回显的信息显示表单头部。

看一下结果:

Struts2中的数据回显

当我们输入的日期格式不能自动转换时,错误信息就会回显回表单界面。

它回显的数据是英文,我们也可以将回显的信息替换为中文。

在bean包下写入User.properties的配置文件

invalid.fieldvalue.birthday=请输入正确的日期格式yyyy-MM-dd
           

如图所示

Struts2中的数据回显