上下文:我正在使用JSP进行视图的Spring WEB MVC应用程序。
在我的JSP页面中,我有一个输入文本字段,实际上是一个jquery日期范围选择器:
<input type="text" name="daterange" value="01/01/2017 - 01/31/2017" />
我认为在这个ajax函数中我可以检索输入日期范围的值并将其传递给var daterange?像这样:
function filterByDate() {
$.ajax({
url : 'outbatch',
data : ({}),
success : function(data) {
var daterange = document.getElementById("daterange").value();
}
});
}
这是我的控制器(我没有说它太长了不看看返回null我只是把它用于显示)方法谁将更新我的批处理并从我的模型中获取信息:
@RequestMapping(value = "/outbatch", method = RequestMethod.GET)
public String updateEblnotif(Model model) {
String out_path = env.getProperty("notif_out");
List<Doc> doc_list = unmarshal(out_path, "LETTERS");
System.err.println("jbb*********" + doc_list.size());
Set<String> formname_set = new HashSet<>();
`......
return null`}
我的问题是:我在哪里将Ajax函数调用中的变量传递给Controller?我知道,如果我没有弄错,我可以将其他几个选项参数传递给Ajax函数,如'data','datafilter','datatype'?这是请求日期在我的模型中假设Java日期对象
的最佳方式注意:我是初级开发人员,这是我的第一个项目。我的模型使用带休眠的DAO映射到数据库。
感谢各位的帮助!
答案 0 :(得分:0)
首先,您应该在客户端获取参数的值,这样您就可以简单地向标记添加id
属性,以便getElementById
可能有用,请尝试以下操作:< / p>
<input type="text" name="daterange" id="daterange" value="01/01/2017 - 01/31/2017" />
现在让我们假设您的函数负责检索所需的值并使用AJAX将其作为参数发送到服务器端,所以很简单:
function filterByDate() {
var daterange = document.getElementById("daterange").value();
$.ajax({
url : 'outbatch',
data : {"daterange":daterange}, //here you send the daterange over an Ajax request and by default it's sended with a GET method
success : function(data) {
alert(data); //here you will see an alert displaying the callback result coming from your spring controller
}
});
}
现在我们将日期范围发送给控制器,因此我们必须将其恢复到那里:为此,您只需尝试以下方法:
@RequestMapping(value = "/outbatch", method = RequestMethod.GET)
public @ResponseBody String updateEblnotif(Model model,@RequestParam("daterange") String daterange) {
//so here you're ahving the daterange parameter in controller , if you want to display it in the alert , you can send it in the return like this,
String date = "the daterange is "+daterange
return date;
}
我希望这对你来说很明显。