您的位置:首页 > 其它

数组类型转换器实例

2016-11-01 15:00 169 查看
index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>
<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>
</body>
</html>


success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'success.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<s:property value="tel"/><br>

<s:iterator value="tel" id="t">
区号:<s:property value="#t.sectionNo"/>
号码:<s:property value="#t.telNo"/>
</s:iterator>
</body>
</html>


javaBean

package com.adam.test.userbean;

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

package com.adam.test.action;

import com.adam.test.userbean.Tel;
import com.opensymphony.xwork2.ActionSupport;

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";
}
}


转换器

package com.adam.test.converter;

import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

import com.adam.test.userbean.Birthday;
import com.adam.test.userbean.Tel;

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息