Java Spring MVC自定义转换器不工作
我试图为我的SpringMVC应用程序创建一个自定义转换器,但它从未被触发 下面是我如何实现和注册它的:Java Spring MVC自定义转换器不工作,java,spring,spring-mvc,Java,Spring,Spring Mvc,我试图为我的SpringMVC应用程序创建一个自定义转换器,但它从未被触发 下面是我如何实现和注册它的: public class ObjectIdSpringConverter implements Converter<String, ObjectId>{ public ObjectIdSpringConverter(){ System.out.println("ObjectIdSpringConverter picked up "); }
public class ObjectIdSpringConverter implements Converter<String, ObjectId>{
public ObjectIdSpringConverter(){
System.out.println("ObjectIdSpringConverter picked up ");
}
@Override
public ObjectId convert(String source) {
System.out.println("ObjectIdSpringConverter converting");
return new ObjectId(source);
}
}
我在转换器的构造函数和convert()方法中放置了一些断点,可以看出它的构造是正确的,但是从未调用convert()方法,这会导致控制器接收到icorrect值
下面是一个示例控制器方法:
@Controller
public class HomeController {
@RequestMapping(value="/home/testObjectId.amlgm", method = RequestMethod.GET)
public ObjectId testObjectId(ObjectId oid){
System.out.println("expected 552952cec9ac88712ee0d36b, actual " + oid.toString());
System.out.println(oid);
return oid;
}
}
我知道convert方法永远不会被调用,因为断点永远不会被命中,而且值不是期望的值。我还调试/跟踪了spring的工作,它似乎没有使用我的转换器来实例化控制器方法的参数ObjectId
有人能告诉我我错过了什么吗
谢谢您的格式化程序应该实现
格式化程序
,在您的情况下,T将是ObjectId
谢谢你的回答。出于某种原因,这也不起作用。。。我得到了完全相同的结果。我将尝试一个新的项目,并让你知道我的结果。
@Controller
public class HomeController {
@RequestMapping(value="/home/testObjectId.amlgm", method = RequestMethod.GET)
public ObjectId testObjectId(ObjectId oid){
System.out.println("expected 552952cec9ac88712ee0d36b, actual " + oid.toString());
System.out.println(oid);
return oid;
}
}