数组类型转换器实例

前端传回后端两个电话号码, 在后端划分电话的区号和号码.

index.jsp

<s:form action="myConverter" method="post">
	<s:textfield name="tel" label="家庭电话(**-****)"></s:textfield>
	<s:textfield name="tel" label="公司电话(**-****)"></s:textfield>
	<s:submit value="提交"></s:submit>
</s:form>

javaBean

public class Tel {
	private String sectionNo;
	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;
	}
	private String telNo;
	
}

action

public class LoginAction extends ActionSupport{
	private Tel[] tel;

	public Tel[] getTel() {
		return tel;
	}

	public void setTel(Tel[] tel) {
		this.tel = tel;
	}

	public String execute() throws Exception{
		return "success";
	}
}

转换器converter

public class MyTypeConverter extends StrutsTypeConverter{
	public Object convertFromString(Map arg0,String[] arg1,Class arg2){
		Tel[] tel=new Tel[arg1.length];
		for(int i=0;i<arg1.length;i++){
			Tel t=new Tel();
			String[] str=arg1[i].split("-");
			t.setSectionNo(str[0]);
			t.setTelNo(str[1]);
			tel[i]=t;
		}
		return tel;
	}
	
	public String convertToString(Map arg0,Object arg1){
		Tel[] tel=(Tel[]) arg1;
		String result="[";
		for(int i=0;i<tel.length;i++){
			result+="<"+tel[i].getSectionNo()+"-"+tel[i].getTelNo()+">";
		}
		result+="]";
		return result;
	}
}	

注册类型转换器

tel=com.adam.test.converter.MyTypeConverter

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="default" extends="struts-default">
		<action name="myConverter" class="com.adam.test.action.LoginAction">
			<result name="success">/success.jsp</result>
		</action>
	</package>
</struts>    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值