JavaWeb----学习(34)----struts2---类型转换 && 类型转换错误抛出异常 &&类型转换错误消息的定制

1. 从一个 HTML 表单到一个 Action 对象, 类型转换是从字符串到非字符串.HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一

   个字符串或一个字符串数组. 在服务器端, 必须把 String 转换为特定的数据类型。

 2.在 struts2 中, 把请求参数映射到 action  属性的工作由 Parameters 拦截器负责, 它是默认的defaultStack 拦截器中的一员.

     Parameters 拦截器可以自动完成字符串和基本数据类型之间转换.

3.如果类型转换失败:

    3.1 若 Action 类没有实现 ValidationAware 接口: Struts 在遇到类型转换错误时仍会继续调用其 Action 方法, 就好像什么都没发生一样.

    3.2 若 Action 类实现 ValidationAware 接口:Struts 在遇到类型转换错误时将不会继续调用其 Action 方法:  Struts2 将检查相关   action 元素的声明是否包含着一个 name=input 的 result.  如果有, Struts2 将把控制权转交给那个 result  元素; 若没有 input Struts2 将抛出一个异常

<action name="testConversion"  class="com.lishenhuan.action.ConversionAction">
	<result>/success.jsp</result>
	<result name="input">/index.jsp</result>
 </action>

         输入的字段不合法:

4  类型转换错误消息的定制

  4.1  作为默认的 default 拦截器的一员, ConversionError 拦截器负责添加与类型转换有关的出错消息(前提: Action 类必须实现

         了 ValidationAware 接口)和保存各请求参数的原始值.

  4.2 若字段标签使用的不是 simple 主题, 则非法输入字段将导致一条有着以下格式的出错消息:

lid field value for field "age".

  4.3 •覆盖默认的出错消息:

           在对应的 Action 类所在的包中新建  ActionClassName.properties 文件, ClassName 即为包含着输入字段的 Action 类的类

          名在属性文件中添加如下键值对: invalid.fieldvalue.age(jsp页面属性名)=ssssssss(覆盖的错误消息)


  4.4   如果是 simple 主题, 可以通过 <s:fielderror fieldName=filedname></s:fielderror> 标签显示错误消息

<s:form action="testConversion"  theme="simple">
	<s:textfield name="age" label="Age"></s:textfield>
	  <br>
	 <s:fielderror fieldName="age"></s:fielderror>
	<s:submit></s:submit>
</s:form>

猜你喜欢

转载自blog.csdn.net/lsh15846393847/article/details/87929300
今日推荐