美文网首页
参数类型转换

参数类型转换

作者: 黎涛note | 来源:发表于2017-12-09 23:10 被阅读0次

    • 通常,客户端浏览器提交的参数值都是字符串。在服务器端,Struts2框架会
    根据set方法的参数类型自动进行转换。
    但特殊情况下,默认的转换器可能满足不了要求。比如:
    1、允许用户以多种格式输入日期值;
    2、以特殊格式提交的参数值需要解析为自定义类的对象。
    • 自定义类型转换器
    1、类型转换类通常继承org.apache.struts2.util.StrutsTypeConverter并实现其中的
    抽象方法。
    2、在xwork-conversion.properties文件中配置目标类型和转换器类的对应关系。
    例:
    com.si.vo.MyType=com.sxt.converter.MyTypeConverter
    • 自定义类型转换器,不仅用于参数的装载,JSP页面输出此类型对象时,Struts2也
    会使用该转换器。
    【示例】
    • 在自定义的转换器类中,如果发现参数值格式错误不能进行转换,想让Struts2框
    架不执行目标Action类中的方法并跳回当前输入页面,则需如下配置:
    1、在类型转换器中抛出TypeConversionException异常
    2、自定义Action需继承自ActionSupport;
    3、 在struts.xml文件中添加name=“input”的<result>节点,设置输入页面的路径。
    【示例】
    • 如果转换器中的方法抛出了TypeConversionException异常,struts2框架会调用Action
    实例中的addFieldError()方法添加一条错误消息,消息内容取自
    com.opensymphony.xwork2包中的xwork-messages.properties文件,消息key为:
    xwork.default.invalid.fieldvalue 。
    • 如果要自定义错误消息,有两种解决办法:
    1、全局消息资
    在struts.xml中定义消息资源文件:struts.custom.i18n.resources=messages
    然后在messages.properties文件中添加xwork.default.invalid.fieldvalue对应的消息内容。
    2、Action级别消息资源
    在 ActionName.properties文件中定义invalid.fieldvalue.[fieldname]=[message content]
    【示例】

    相关文章

      网友评论

          本文标题:参数类型转换

          本文链接:https://www.haomeiwen.com/subject/xhxmixtx.html