Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对响应ajax调用而返回的对象应用属性编辑器?_Ajax_Spring_Spring Mvc - Fatal编程技术网

如何对响应ajax调用而返回的对象应用属性编辑器?

如何对响应ajax调用而返回的对象应用属性编辑器?,ajax,spring,spring-mvc,Ajax,Spring,Spring Mvc,我将控制器的属性编辑器指定为: @InitBinder protected void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); CustomDateEditor editor = new CustomDateEditor(dateFormat, true); binder.regis

我将控制器的属性编辑器指定为:

@InitBinder
    protected void initBinder(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
        CustomDateEditor editor = new CustomDateEditor(dateFormat, true);
        binder.registerCustomEditor(Date.class, editor);
    }
在我在AJAX调用中调用下面的方法之前,它工作得很好

@RequestMapping(value = "searchCriteria", method = RequestMethod.GET)
    public @ResponseBody Set<SearchCriteria> loadSearchCriterias(){
        // call service method to load criterias
        Set<SearchCriteria> criterias = new HashSet<SearchCriteria>();
        SearchCriteria sampleCriteria = new SearchCriteria();
        sampleCriteria.setStartDate(new Date());
                criterias.add(sampleCriteria);
        return criterias;
         }

我认为不可能对返回的值应用属性编辑器。弹簧有一个转换器机构

如果您返回
json
,并且在类路径中有,那么spring将使用它将对象转换为响应字符串。
如果返回
xml
,并且类路径中有,那么spring将使用它将对象转换为响应字符串

如果您将
Jackson
库与spring一起使用,则需要告诉Jackson您希望如何通过使用来序列化字段

例:


如果您想在全局范围内使用它,您可以尝试解释的机制。

您需要为iThanks使用jackson序列化程序,但是如何配置jackson序列化程序以用于此类?您可以共享您的
搜索条件吗?
?添加了该类。我猜将注释添加到createdDate字段将自动强制Spring在类路径中的任何位置搜索DateTimeSerializer(或者我们必须在某个地方指定它吗?)
public class SearchCriteria{
    Date startDate;
    String name;
    // getter setters
}
public class DateTimeSerializer extends JsonSerializer<Date> {

    @Override
    public void serialize(Date value, JsonGenerator jgen,
            SerializerProvider provider) throws IOException,
            JsonProcessingException {
        if (value != null) {
            SimpleDateFormat f = new SimpleDateFormat(format);
            jgen.writeString(f.format(value));
        }
    }

}
@JsonSerialize(using = DateTimeSerializer.class)
private Date createdDate;