您的位置:首页 > 编程语言 > Java开发

自定义struts2.0中的转换器(converter)

2010-01-21 14:16 417 查看
本人做的这个转换器是帮大家认识如何最简单的做一个自定义转换器的

废话不说,马上来例子

一,先创建Simpleconverter.java动作类类

package tutorial;

import com.opensymphony.xwork2.ActionSupport;

public class SimpleConverter extends ActionSupport {

private static final long serialVersionUID = 1L;

private String username;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String execute() {
username = "***" + username;
System.out.println(username);
System.out.println(" Calling execute() ");
return SUCCESS;
}
}


二,创建SimpleConverterConverter.java转换器类

package tutorial;

import java.util.Map;

import ognl.DefaultTypeConverter;

public class SimpleConverterConverter extends DefaultTypeConverter {
public Object convertValue(Map context,Object value ,Class toType){
System.out.println("use Converter");
if(toType==int.class){
String v=((String[])value)[0];
System.out.println("to int");
return Integer.parseInt(v);
}else if(toType==String.class){
System.out.println("toString");
return ((String[])value)[0]+"---";
}
return null;
}

}


三,创建SimpleConverter.jsp页面用于输入值

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Say Hello</title>
</head>
<body>
<s:form action="SimpleConverter">
<s:textfield name="username" />
<s:submit />
</s:form>
</body>
</html>


四,创建SimpleConverterResult.jsp页面用于显示输入的值

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>SimpleConverterResult.jsp</title>
</head>
<body>
<s:property value="username"/>
</body>
</html>


五,配置SimpleConverter-conversion.properties文件

username=tutorial.SimpleConverterConverter


六,配置struts.xml文件

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<action name="SimpleConverter" class="tutorial.SimpleConverter">
<result>/SimpleConverterResult.jsp</result>
</action>
</package>

</struts>


全部文件配置好了以后,打开SimpleConverter.jsp,输入aa,提交。显示***aa---;转换器测试成功

总结:

1,SimpleConverter-conversion.properties文件的命名必须是Action类的名字+"-"+"conversion".如果不是就不会调用你自定义的转换器SimpleConverterConverter.java

2,SimpleConverter-conversion.properties文件必须放在和你的Action类同一个目录下。

3,SimpleConverter-conversion.properties里面的内容username=tutorial.SimpleConverter.java。

username为要进行自定义转换类型的字段。

4,转换器调用过程。1)提交SimpleConverter.jsp页面时.2)程序会找到struts.xml文件.3)调用里面的action类SimpleConverter.java.4)转到调用SimpleConverterConverter.java。5)在此调用SimpleConverter.java类里面的execute()方法。大家认真看输出就清楚了,特别注意我在输出***aa---里面加进了*,-就是为了说明问题。

PS,小弟弄了半天,心得体会啊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: