package converter;import converter.Point;
import java.util.Map;import ognl.DefaultTypeConverter;public class PointConvert extends DefaultTypeConverter { @Override
public Object convertValue(Map context, Object value, Class toType) {
if(Point.class == toType){
Point point = new Point();
String[] str = (String[])value ;
String[] paramValues = str[0].split(",");
int x = Integer.parseInt(paramValues[0]);
int y = Integer.parseInt(paramValues[1]);
point.setX(x);
point.setY(y);
return point ;
}
if(String.class == toType){
Point point = (Point)value ;
int x = point.getX();
int y = point.getY();
String str = "[x=" + x + ",y=" + y + "]";
return str ;
}
return null ;
}
}Action
package converter;import converter.Point;
import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class PointAction extends ActionSupport {
private Point point ;
private int age ;
private Date date ;
public Point getPoint() {
return point;
}
public void setPoint(Point point) {
this.point = point;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public String execute() throws Exception {
return SUCCESS ;
}
}
import java.util.Map;import ognl.DefaultTypeConverter;public class PointConvert extends DefaultTypeConverter { @Override
public Object convertValue(Map context, Object value, Class toType) {
if(Point.class == toType){
Point point = new Point();
String[] str = (String[])value ;
String[] paramValues = str[0].split(",");
int x = Integer.parseInt(paramValues[0]);
int y = Integer.parseInt(paramValues[1]);
point.setX(x);
point.setY(y);
return point ;
}
if(String.class == toType){
Point point = (Point)value ;
int x = point.getX();
int y = point.getY();
String str = "[x=" + x + ",y=" + y + "]";
return str ;
}
return null ;
}
}Action
package converter;import converter.Point;
import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class PointAction extends ActionSupport {
private Point point ;
private int age ;
private Date date ;
public Point getPoint() {
return point;
}
public void setPoint(Point point) {
this.point = point;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public String execute() throws Exception {
return SUCCESS ;
}
}
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<package name="struts" extends="struts-default">
<action name="login" class="struts2.panxiaodong.LoginAction">
<result name="success">/result.jsp</result>
<result name="input">/login.jsp</result>
<result name="failure">/login.jsp</result>
</action>
<action name="pointConvert" class="converter.PointAction">
<result name="success">/output.jsp</result>
</action>
</package>
</struts>
2010-7-3 19:41:31 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error
严重: Problem loading properties for converter.PointAction
java.lang.ClassNotFoundException: converter.PointConvert
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:146)
at com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:96)
at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:149)
at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
at com.opensymphony.xwork2.conversion.impl.XWorkConverter.createTypeConverter(XWorkConverter.java:738)
at com.opensymphony.xwork2.conversion.impl.XWorkConverter.addConverterMapping(XWorkConverter.java:500)
at com.opensymphony.xwork2.conversion.impl.XWorkConverter.buildConverterMapping(XWorkConverter.java:703)
at com.opensymphony.xwork2.conversion.impl.XWorkConverter.getConverter(XWorkConverter.java:404)
at com.opensymphony.xwork2.conversion.impl.XWorkConverter.convertValue(XWorkConverter.java:277)
at com.opensymphony.xwork2.ognl.OgnlTypeConverterWrapper.convertValue(OgnlTypeConverterWrapper.java:28)
at ognl.OgnlRuntime.getConvertedType(OgnlRuntime.java:1040)
at ognl.OgnlRuntime.getConvertedTypes(OgnlRuntime.java:1057)
at ognl.OgnlRuntime.getConvertedMethodAndArgs(OgnlRuntime.java:1083)
at ognl.OgnlRuntime.getAppropriateMethod(OgnlRuntime.java:1169)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1183)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1454)
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:28)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2225)
at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.setProperty(CompoundRootAccessor.java:65)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2225)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.Ognl.setValue(Ognl.java:737)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:198)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:161)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:149)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:276)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:187)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
PointAction-conversion.propertiespoint=converter.PointConvert
其他都正确,没错!再找不到就是人品问题了。