2014-02-21 48 views
0

编辑:也许我需要更清楚地了解此应用程序的工作原理。我在这里没有表格。我捕捉寻呼响应,并使用HTML导航API负载次,然后发送“GET”请求我的应用程序,如下所示:Spring 4.X:无法将请求bean映射到控制器中的POJO

window.onload=function(){ 
    setTimeout(function(){ 
     var page = window.location.pathname; 
     var xmlhttp = new XMLHttpRequest(); 
     var pt = performance.timing; 

       ...SNIP.... 
     var load = pt.loadEventEnd - pt.loadEventStart; 
     var redc = window.performance.navigation.redirectCount; 

     xmlhttp.open("GET", "http://localhost:8080/wp/timing?app=test&page="+page 
         +"&str="+str 
         +"&tot="+tot 
         +"&red="+red 
         +"&cache="+cache 
         +"&dns="+dns 
         +"&conn="+conn 
         +"&req="+req 
         +"&res="+res 
         +"&dom="+dom 
         +"&load="+load 
         +"&redc="+redc 
         , true); 
     xmlhttp.send(null); 
    }, 0); 
}; 

这是我的控制器(下面示出)进入的画面。现在,其中一个请求参数是以毫秒为单位的时间。 Spring自动将具有与请求参数相同名称的原始数据类型映射到bean中的相应字段。但是,当我使用'日期'时,这会失败。

============================================== ========================================

我正在研究这个应用程序,我在控制器和控制器内收到一定数量的请求参数,我传入一个自定义bean作为参数。现在,我能够成功地将应用程序的请求参数(与bean中的名称相同)与POJO进行映射。 但是,现在我在我的bean中添加了Date类型,并且我希望将相应的请求参数自动转换为'Date'。但是,当我在POJO中添加日期字段时,控制器不会被调用。

下面是我的代码片段:

控制器:

@Controller 
public class Timing { 

    @Autowired 
    private PageService pageService; 

    @RequestMapping(value="/timing", method = RequestMethod.GET) 
    @ResponseBody 
    public void insert(Page page) throws UnknownHostException { 
     page.setTs(new Date()); 
     pageService.updatePage(page); 
    } 

我也尝试添加自定义编辑:

@InitBinder 
    public void initBinder(WebDataBinder binder,HttpServletRequest request) { 
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yy"); 
        dateFormat.setLenient(false); 
        binder.registerCustomEditor(Date.class, new CustomDateEditor(
                dateFormat, true)); 
    } 

这里是我的豆:

@Document 
public class Page { 

    @Id 
    private String id; 
    private Date ts; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    ....SNIP.... 

    public Date getTs() { 
     return ts; 
    } 

    public void setTs(Date ts) { 
     this.ts = ts; 
    } 

任何指针w不胜感激。我正在使用Spring 4.x.

+0

我想你的@RequestMapping方法应该是POST。 – Rembo

+0

@Rembo这里的RequestMapping方法应该是'GET'。它在我在模型中添加'Date'之前有效。 – va1b4av

+0

使用Json格式代替通过url传递数据 – Rembo

回答

相关问题