前端传回后端两个电话号码, 在后端划分电话的区号和号码.
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>