Java 如何使用model.addAttributes更新相同的视图(.jsp)春季MVC

Java 如何使用model.addAttributes更新相同的视图(.jsp)春季MVC,java,ajax,spring,spring-mvc,servlets,Java,Ajax,Spring,Spring Mvc,Servlets,我想在提交表单后更新.jsp页面中的div。因此,流程如下所示: 表单提交->调用Ajax函数并指向我的控制器方法的url->已处理函数并向模型添加新属性->返回相同视图。问题是视图不会使用新属性更新 这是提交后调用的 $("#search-form").submit(function(){ var search = $("#search-bar-input").val(); $.ajax({ url : 'search', method : 'g

我想在提交表单后更新.jsp页面中的div。因此,流程如下所示: 表单提交->调用Ajax函数并指向我的控制器方法的url->已处理函数并向模型添加新属性->返回相同视图。问题是视图不会使用新属性更新

这是提交后调用的

$("#search-form").submit(function(){
    var search = $("#search-bar-input").val();
    $.ajax({
        url : 'search',
        method : 'get',
        data : {search : search},
        async : false,
        complete : function(data) {
            console.log(data.responseText);
        }
     });
})
然后就到这里了

@RequestMapping(value = "/search", method = RequestMethod.GET)
public String search(ModelMap model, @RequestParam String search) {
   System.out.println(search);

   List<Film> films = filmJDBCTemplate.getFilmByName(search);

   model.addAttribute("films", films);     

   return "home";
}
@RequestMapping(value=“/search”,method=RequestMethod.GET)
公共字符串搜索(ModelMap模型,@RequestParam字符串搜索){
System.out.println(搜索);
列表电影=filmJDBCTemplate.getFilmByName(搜索);
模型。添加属性(“胶片”,胶片);
返回“家”;
}
然后,我注意到它在这个函数中再次出现

@RequestMapping(value = "/", method = RequestMethod.GET)
public String displayHome(ModelMap model, HttpSession session) {

// Display all genres
   List<Genre> listGenre = genreJDBCTemplate.listGenres();
   List<String> listGenreNom = new ArrayList<String>();

   for (Genre g : listGenre){
       listGenreNom.add(g.getNom());
   }

   model.addAttribute("listGenreNom", listGenreNom);

   String nom = accessData.getClient().getNomFamille() + " " + accessData.getClient().getPrenom();
   model.addAttribute("nom", nom);     
   return "home";
}
@RequestMapping(value=“/”,method=RequestMethod.GET)
公共字符串displayHome(ModelMap模型、HttpSession会话){
//显示所有类型
List listgree=genreJDBCTemplate.listgrees();
List listGenreNom=新建ArrayList();
对于(类型g:列表类型){
添加(g.getNom());
}
model.addAttribute(“listGenreNom”,listGenreNom);
字符串nom=accessData.getClient().GetNomFamile()+“”+accessData.getClient().getPrenom();
model.addAttribute(“nom”,nom);
返回“家”;
}
这是jsp页面中应该更新的部分

<div id="movies-div">
    <c:forEach var="film" items="${films}">                 
        <div class="movie">
            <div class="poster-div">
                <img class="poster" src="${film.poster}" />
            </div>
            <div class="title-div">
                    ${film.titre}               
            </div>

        </div>
    </c:forEach>
</div>

${film.titre}
这就是为什么我的页面没有更新。我已经寻找了几天如何解决这个问题,但我没有找到任何类似的情况下,我的


请给我建议一些方法。非常感谢

尝试使用要显示的数据而不是jsp名称来更改返回值

@RequestMapping(value = "/search", method = RequestMethod.GET)
public String search(ModelMap model, @RequestParam String search) {
   System.out.println(search);

   List<Film> films = filmJDBCTemplate.getFilmByName(search);

   return films;
}
@RequestMapping(value=“/search”,method=RequestMethod.GET)
公共字符串搜索(ModelMap模型,@RequestParam字符串搜索){
System.out.println(搜索);
列表电影=filmJDBCTemplate.getFilmByName(搜索);
返回电影;
}

您可能需要在
complete:function(data){console.log(data.responseText);}中添加一些代码
所以不可能像上面那样做?我的意思是使用mode.addAtributes(“newAttribute”,newAttribute)并返回相同的视图?我不这么认为。JSP已经呈现。是
数据中的正确数据。responseText
数据。responseText
未定义。因为我相信我没有回复。