ajax - 使用Ajax处理表单时,模型addAttribute()无法加载到相应的JSP标签

标签 ajax spring-mvc jsp

我正在尝试使用 Ajax 后置方法处理表单, Controller 中的所有内容都工作正常,除非我尝试调用 model.addAttribute("jspTagName", string);它不起作用,实际上什么也没有发生。 这是我的 Ajax 处理程序的代码

$("#filtring-form").submit(function(e){
var url = "/MessageCenterStatistics/results";
$.ajax({
    type: "POST",
       url: url,
       data: $("#filtring-form").serialize(),
    success: function(data){
        //TODO: 


    }});}

下面是我的JSP页面代码,位于一个名为index.jsp的jsp文件中,当然我只是向您展示一个简单的案例

<form id="filtring-form">
<label>From date </label><input type="Date" name="fromDate" require/>
<label>Up to date </label><input type="Date" name="toDate" required/>
<button type="submit" id="dosomething">Get Statistics</button> 
<button type="reset">Reset </button> 
</form>
<div>
<p id="tag1">${something}</p>
</div>

我只是在这里展示我的 Java Controller 的简化版本

@RequestMapping(value = "/results", method = RequestMethod.POST)
public String processform(Model model, @RequestParam("fromDate") String fromDate,
        @RequestParam("toDate") String toDate) {
    String s="Hello World!";
    model.addAttribute("something", s);

    return "index";
}

最佳答案

这是因为您正在执行form submit,它会使您的页面重新加载

因此,在使用 ajax 时,您需要阻止页面提交和重新加载的默认行为,以便您可以看到具有相关属性的更新模式。

$("#filtring-form").submit(function(e){
 // prevent defaults
 e.preventDefault();

 $.ajax({
    type: "POST",
       url: "/MessageCenterStatistics/results",
       data: $("#filtring-form").serialize(),
       success: function(data){
          //TODO: 
       }
 });

 return false;
}

此外,您不应该从处理程序方法中返回任何内容。使其void而不是返回string。当您返回字符串并且 index 是 View jsp 时,它会再次重新呈现页面,为您重新创建一个新的模式。因此,如果您将其设为 void 并使用 addAttribute() 修改 modal,那么您将在 jsp View 中看到它。

@RequestMapping(value = "/results", method = RequestMethod.POST)
public void processform(Model model, @RequestParam("fromDate") String fromDate,
        @RequestParam("toDate") String toDate) {
    String s="Hello World!";
    model.addAttribute("something", s);
}

关于ajax - 使用Ajax处理表单时,模型addAttribute()无法加载到相应的JSP标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41142060/

相关文章:

javascript - Laravel 5.2 中无法读取 Jquery 代码中的 json 数据

spring - 我可以使用 spring boot 数据源来获取连接对象,以便手动将其与 conn.executeQuery() 一起使用吗?

java - 如何在Struts2中将JSP目标设置为父框架?

java - Servlet 抛出 java.lang.NullPointerException

jquery - 访问控制允许来源-本地主机

javascript - ajax 中的 phonegap XML 解析器在 iOS 上出错

php - 从 jquery 传递的变量创建 PDO 数组

html - 如何在spring mvc中链接一个页面

java - spring mvc HTTP状态404基本启动

java - 使用jsp显示空结果