Java 如何使用model.addAttributes更新相同的视图(.jsp)春季MVC
我想在提交表单后更新.jsp页面中的div。因此,流程如下所示: 表单提交->调用Ajax函数并指向我的控制器方法的url->已处理函数并向模型添加新属性->返回相同视图。问题是视图不会使用新属性更新 这是提交后调用的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
$("#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
未定义。因为我相信我没有回复。