Struts2的类型转换及输入校验(自定义类型转换器)
来源:互联网 发布:javascript 转为java 编辑:程序博客网 时间:2024/06/11 22:35
typeconverter2.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>自定义类型转换器</title>
</head>
<body>
<s:form action="typeconverter" method="post">
<s:textfield name="tel" label="请输入电话号码"></s:textfield>
<s:submit value="提交"></s:submit>
</s:form>
</body>
</html>
action类:
package org.action;
import org.model.Tel;
import com.opensymphony.xwork2.ActionSupport;
public class MyTypeConverterAction extends ActionSupport{
private Tel tel;
public String execute() throws Exception{
System.out.println("执行MyTypeConverterAction");
return SUCCESS;
}
public Tel getTel() {
return tel;
}
public void setTel(Tel tel) {
this.tel = tel;
}
}
Tel.java
package org.model;
public class Tel {
private String sectionNo;
private String telNo;
public String getSectionNo() {
return sectionNo;
}
public void setSectionNo(String sectionNo) {
this.sectionNo = sectionNo;
}
public String getTelNo() {
return telNo;
}
public void setTelNo(String telNo) {
this.telNo = telNo;
}
}
MyTypeConverter
package org.converter;
import java.util.Map;
import org.model.Tel;
import ognl.DefaultTypeConverter;
public class MyTypeConverter extends DefaultTypeConverter{
public Object convertValue(Map context,Object value,Class toType){
//如果是从字符串向Tel类型转换
if(toType==Tel.class){
//把参数value转换为字符串数组
String[] str=(String[])value;
Tel t=new Tel();
//把传的字符串循环按“-”分割
for (int i = 0; i < str.length; i++) {
if(str[i].indexOf("-")>0){
//取出字符串数组中第一个值,然后按“-”分割得到字符串数组
String[] tels=str[0].split("-");
//分别把得来的值赋予Tel的属性
t.setSectionNo(tels[0]);
t.setTelNo(tels[1]);
}else
return null;
}
return t;
}else if (toType==String.class) {
Tel t=(Tel)value;
return "["+t.getSectionNo()+"-"+t.getTelNo()+"]";
}
return null;
}
}
MyTypeConverterAction-concersion.properties(这个文件应该放在和action一个目录下,并且配置文件名一定要是“action类型-converter.properties”):
tel=org.converter.MyTypeConverter
struts.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="typeconverter" class="org.action.MyTypeConverterAction">
<result name="success">/show.jsp</result>
</action>
</package>
</struts>
show.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>自定义转换类型</title>
</head>
<body>
<s:property value="tel"/><br>
区号:<s:property value="tel.sectionNo"/><br>
号码:<s:property value="tel.telNo"/>
</body>
</html>
MyTypeConverter也可以这样写:
package org.converter;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import org.model.Tel;
public class MyTypeConverter extends StrutsTypeConverter{
public Object convertFromString(Map arg0,String[] arg1,Class arg2){
Tel tel=new Tel();
String[] str=arg1[0].split("-");
tel.setSectionNo(str[0]);
tel.setTelNo(str[1]);
return tel;
}
public String convertToString(Map arg0,Object arg1){
Tel tel=(Tel)arg1;
return "["+tel.getSectionNo()+"-"+tel.getTelNo()+"]";
}
}
- Struts2的类型转换及输入校验(自定义类型转换器)
- Struts2的自定义类型转换和简单的输入校验
- Struts的类型转换及输入校验(Struts2的输入校验)
- Struts2的自定义类型转换器
- Struts2的自定义类型转换器
- Struts2的类型转换及输入校验(数组类型的使用)
- Struts2的类型转换及输入校验(集合类型的使用)
- 为struts2自定义类型转换器:Date的转换
- Struts2自定义类型转换器
- struts2 自定义类型转换器
- struts2自定义类型转换器
- Struts2自定义类型转换器
- Struts2自定义类型转换器
- 自定义Struts2类型转换器
- struts2自定义类型转换器
- struts2 自定义类型转换器
- struts2 自定义类型转换器
- Struts2自定义类型转换器
- 在本地机器上搭建SVN服务器作版本备份
- IOS的AppDelegate方法中的事件触发调用
- ZeroMQ,史上最快的消息队列 —– ZMQ的学习和研究
- 括号匹配(栈)
- android工具类
- Struts2的类型转换及输入校验(自定义类型转换器)
- 与WebGL一起遇见网页的未来
- php去掉字符串的最后一个字符附substr()的用法
- textarea用resize控制输入框的宽度和高度
- Netty4.0学习笔记系列之五:自定义通讯协议
- zookeeper伪分布安装和使用(最详细最齐全)
- dismissViewController 实现多个模态VC跳转到根VC
- FAQ 前端面试大杂烩3
- [LeetCode]35. Search Insert Position