当前位置:网站首页 > 容器化与Kubernetes > 正文

list变为字符串(list字符串转化为list 对象)



1. Struts2的类型转换,对于8个原生数据类型以及Date,String等常见类型,Struts2可以使用内建的类型转换器实现自动的转换;但对于自定义的类型转换来说,

就需要我们自己指定类型转器的方式

2. 类型转换器必须继承DefaultTypeConverter,一般继承它的子类StrutsTypeConverter。action中调用set和get方法时,调用类型转换方法。

3. 自定义类型转换器的实现步骤:

1). 继承StrutsTypeConverter

2). 覆盖convertFromString和convertToString

范例:

public class UtilDateConverter extends StrutsTypeConverter {

private static final String PATTERN = "yyyy/MM/dd";

//浏览器提交到服务器是调用,将字符串转换成对象

@Override

public Object convertFromString(Map context, String[] values, Class toClass) {

//values为要转换属性的数组,可能有多个名字相同,所以取第一个

String dateString = values[0];

SimpleDateFormat sdf = new SimpleDateFormat(PATTERN);

Date date = null;

try {

//字符串,转换成日期类型。

date = sdf.parse(dateString);

} catch (ParseException e) {

e.printStackTrace();

}

return date;

}


//服务器向浏览器输出时调用,将某种类型转换成字符串。o是要转换成字符串的对象。

@Override

public String convertToString(Map context, Object o) {

Date date = (Date)o;

return new SimpleDateFormat("yyyy年MM月dd日").format(date);

}

}
3).注册类型转换器

a).局部类型转换器,局部类型转换器只对当前Action起作用,需要提供如下配置文件:

MyActionName-conversion.properties,MyActionName指需要使用转换器的Action名称”-conversion.properties“固定字符串,不能修改。

我们AddUserAction类型转换器的配置文件名称为:AddUserAction-conversion.properties,该配置文件必须和Action放到同一个目录中,该配

置文件的格式为:Action中的属性名称=转换器的完整路径,如:birthday=com.bjpowernode.struts2.UtilDateConverter 也可以转换数组,

同样需要有set和get方法。

b).全局类型转换器,全局类型转换器可以对所有的Action起作用(同Struts1的类型转换器),需要提供如下配置文件:

xwork-conversion.properties(该名字固定),该配置文件需要放到src下,该配置文件的格式:需要转换的类型完整路径=转换器的完整路径,

如:java.util.Date=com.bjpowernode.struts2.UtilDateConverter自定义类型也可以转换。

补:请求页面:

出生日期:<input type="text" name="birthday"><br>

显示页面:<s:property value="http://www.mamicode.com/birthday"/> 或 <s:text name="date"></s:text>

4. 如果全局类型转换器和局部类型转换器同时存在,局部优先。

5. 采用struts2标签读取属性get方法时可以调用转换器的convertToString。采用JSTL不会调用,显示的是默认格式的时间。

6. 类型转换时,若发生异常,fieldError中会自动把异常加上,英文的。

7. 使用类型转换器须要在Action中提供属性的set和get方法

struts(类型转换器)

到此这篇list变为字符串(list字符串转化为list 对象)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • KVM虚拟化技术(kvm虚拟化技术原理)2025-03-27 20:36:07
  • vb法(vb法化学是什么意思)2025-03-27 20:36:07
  • 启动dockerfile(启动docker容器)2025-03-27 20:36:07
  • 将childNodes返回的伪数组转化为真数组2025-03-27 20:36:07
  • thinkPHP5 初始化项目2025-03-27 20:36:07
  • 启动docker容器命令失败(docker启动容器后服务没起来)2025-03-27 20:36:07
  • docker启动容器命令解释(docker run启动容器)2025-03-27 20:36:07
  • kvm虚拟化的特点是什么?(kvm虚拟化是什么意思)2025-03-27 20:36:07
  • nsenter 进入容器(nsenter进入容器ping)2025-03-27 20:36:07
  • 查看k8s版本列表(k8s查看所有容器)2025-03-27 20:36:07
  • 全屏图片