编辑:也许我需要更清楚地了解此应用程序的工作原理。我在这里没有表格。我捕捉寻呼响应,并使用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.
我想你的@RequestMapping方法应该是POST。 – Rembo
@Rembo这里的RequestMapping方法应该是'GET'。它在我在模型中添加'Date'之前有效。 – va1b4av
使用Json格式代替通过url传递数据 – Rembo