关于StrutsTypeConverter类型转换器

<!--
问题1: 如何覆盖默认的错误消息?
1). 在对应的 Action 类所在的包中新建
ActionClassName.properties 文件, ActionClassName 即为包含着输入字段的 Action 类的类名
2). 在属性文件中添加如下键值对: invalid.fieldvalue.fieldName=xxx

问题2: 如果是 simple 主题, 还会自动显示错误消息吗? 如果不会显示, 怎么办 ?
1). 通过 debug 标签, 可知若转换出错, 则在值栈的 Action(实现了 ValidationAware 接口) 对象中有一个 fieldErrors 属性.
该属性的类型为 Map<String, List<String>> 键: 字段(属性名), 值: 错误消息组成的 List. 所以可以使用 LE 或 OGNL 的方式
来显示错误消息: ${fieldErrors.age[0]}

2). 还可以使用 s:fielderror 标签来显示. 可以通过 fieldName 属性显示指定字段的错误.

问题3. 若是 simple 主题, 且使用 <s:fielderror fieldName="age"></s:fielderror> 来显示错误消息, 则该消息在一个
ul, li, span 中. 如何去除 ul, li, span 呢 ?
在 template.simple 下面的 fielderror.ftl 定义了 simple 主题下, s:fielderror 标签显示错误消息的样式. 所以修改该
配置文件即可. 在 src 下新建 template.simple 包, 新建 fielderror.ftl 文件, 把原生的 fielderror.ftl 中的内容
复制到新建的 fielderror.ftl 中, 然后剔除 ul, li, span 部分即可.

问题4. 如何自定义类型转换器 ?
1). 为什么需要自定义的类型转换器 ? 因为 Struts 不能自动完成 字符串 到 引用类型 的 转换.
2). 如何定义类型转换器:
I. 开发类型转换器的类: 扩展 StrutsTypeConverter 类.
II. 配置类型转换器:
有两种方式
①. 基于字段的配置:
> 在字段所在的 Model(可能是 Action, 可能是一个 JavaBean) 的包下, 新建一个 ModelClassName-conversion.properties 文件
> 在该文件中输入键值对: fieldName=类型转换器的全类名.
> 第一次使用该转换器时创建实例.
> 类型转换器是单实例的!

②. 基于类型的配置:
> 在 src 下新建 xwork-conversion.properties
> 键入: 待转换的类型=类型转换器的全类名.
> 在当前 Struts2 应用被加载时创建实例.

-->

时间: 2024-10-05 13:12:35

关于StrutsTypeConverter类型转换器的相关文章

struts2继承StrutsTypeConverter实现自定义类型转换器

1.编写converter类继承StrutsTypeConverter,重写convertFromString和convertToString方法. 2.配置类型转换器: 局部配置:在action所在包下编写 ActionClassName-conversion.properties文件 配置内容:属性名=转换器全路径 全局配置:在src目录下编写 xwork-conversion.properties文件 配置内容:被转换类=转换器全路径 [注意]页面显示要用struts2标签,否则会出现co

笔记02 文件上传、文件下载、类型转换器、国际化的支持

Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload相关依赖包 * commons-io-1.3.2.jar * commons-fileupload-1.2.1.jar 4. 表单中需要采用POST提交方式,编码类型需要使用:multipart/form-data 5. Struts2的Action     取得文件名称->>规则:输入域的名称+

struts2基础----&gt;自定义类型转换器

这一章,我们开始struts2中自定义类型转换器的学习. 自定义类型转换器 一.定义一个继承于StrutsTypeConverter的转换类: package com.huhx.converter; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import o

Struts2之类型转换器

一.类型转换器的应用场景 类型转换是OGNL的一部分,默认的八种基本类型.String.Date会使用类型转换,但是更复杂的类型转换就需要我们自定义了(虽然这个东西一般根本用不到),OGNL可以应用在很多领域,但是在web领域,因为在客户端到服务器端传输的只是字符串,所以这里就有一个需求收缩,我们的需求就变为完成String和复杂对象之间的互相转换.在Struts2中的类型转换则是在客户端的请求参数往Action的成员属性中设置的时候会被调用. 二.如何使用? 1.理论部分 所有的类型转换器都要

sruts2 自定义类型转换器

1.1.1    Struts2中自定义类型转换器:(了解) 类型转换的过程是双向的过程: JSP---->Action参数提交:String---Date. Action---->JSP数据回显:Date---String. 自定义类型转换器: * 1.实现TypeConverter * convertValue(java.util.Map<java.lang.String,java.lang.Object> context, java.lang.Object target, j

struts2自定义类型转换器

首先,何为struts2的类型转换器? 类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换. 一.大部分时候,使用struts2提供的类型转换器以及OGNL类型转换机制即可满足大部分类型转换需求.如: 类User.java package models; public class User { private String username; private String password; public String getUsername() { retur

【Java EE 学习第35天】【strus2】【类型转换器】【struts2和Servlet API解耦】【国际化问题】

一.类型转换器 1.在动作类action中,声明和表单中name属性的值同名的属性,提供get和set方法,struts2就可以通过反射机制,从页面中获取对应的内容 1 package com.kdyzm.convert; 2 3 4 import com.opensymphony.xwork2.ActionSupport; 5 6 public class TypeConvertAction extends ActionSupport{ 7 private static final long

JAVAWEB开发之Struts2详解(二)——Action接受请求参数、类型转换器、使用Struts2的输入校验、以及遵守约定规则实现Struts2的零配置

Action接受请求参数 作为MVC框架,必须要负责解析HTTP请求参数,并将其封装到Model对象中 Struts2提供了非常强大的类型转换机制用于请求数据 到 model对象的封装 Struts2和MVC定义关系 StrutsPrepareAndExecuteFilter:控制器 在Struts2中action是什么?(Struts2是一个MVC框架) V:jsp M:action C:action StrutsPrepareAndExecuteFilter Struts2提供了三种数据封装

自定义类型转换器converter

作用:目前将日期转换成string,将string转换成我想要的类型   0509课件里讲 一.数据类型转换在web应用程序中,数据存在两个方向上的转换:1.当提交表单时  表单数据以字符串的形式提交给服务器,在服务器端转换成不同的Java数据类型 2.当需要在页面显示数据时  将不同的Java数据类型转换为对应的字符串格式显示输出 二.Struts2内置的类型转换Struts2内置了常用类型的自动转换功能,支持常见数据类型与字符串之间的转换 三.自定义类型转换1.编写自定义类型转换器,继承St