【发布时间】:2014-02-21 08:20:21
【问题描述】:
编辑:也许我需要更清楚地了解这个应用程序是如何工作的。我这里没有表格。我使用 HTML 导航 API 捕获页面响应和加载时间,然后向我的应用程序发送一个“GET”请求,如下所示:
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 中添加日期字段时,不会调用控制器。
这是我的代码中的一个 sn-p:
控制器:
@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;
}
任何指针将不胜感激。我正在使用 Spring 4.x。
【问题讨论】:
-
我认为你的@RequestMapping 方法应该是POST。
-
@Rembo 这里的RequestMapping方法应该是'GET'。在我在模型中添加“日期”之前它就起作用了。
-
使用Json格式而不是通过url传递数据
-
GET 没有命中,因为你的 url 是错误的,通过 send() 传递你的数据,现在你发送 null。在发送数据之前还要设置RequestHeader。
-
@Rembo 感谢您的回复..我会尝试添加 RequestHeader。但我不确定为什么在添加“日期”之前调用相同的“GET”方法。
标签: java spring spring-mvc request