小编典典

spring 3未在jsp中渲染模型

jsp

我对Spring
3不使用表达式语言在jsp中呈现我的模型感到有些失望,我不得不承认我不明白为什么。如果有人可以帮助我理解为什么我无法使它起作用,那将是非常不错的。

这是我的上下文:

我的控制器有一个方法(由客户端的ajax调用)返回一个jsp片段:

@RequestMapping(value = "/datagrid/getGoatCard", method = RequestMethod.POST)
public String getGoatCard(@RequestParam Long id,
        @ModelAttribute("goat") Goat goat) {
    goat = goatDataService.findGoatById(id);
    return "goatCard";
}

我使用requestParam调用此方法,该方法允许hibernate模式检索所需的Bean(该模型包含所有需要的数据,已经检查过)。

然后,该方法重新运行一个名为“ goatCard”的jsp。这是jsp代码:

<input name="goat.goatName" type="hidden" value="${goat.goatName}"/>

(这不是整个页面的代码,因为如果显示太多代码,这将不容易阅读。我的jsp包含JQuery easyui和highcharts javaScript库)

我虽然注释@ModelAttribute(“ goat”)将名为“ goat”的模型链接到我的jsp,允许使用EL渲染模型,但事实并非如此。

有人有任何想法吗,也许只是我做错了一点小事,但我看不到哪一个!!!


阅读 228

收藏
2020-06-10

共1个答案

小编典典

@ModelAttribute 用于检索表单模型,而不是设置为在JSP中显示。如果需要在JSP中显示数据,则必须先将数据添加到Model中。

@RequestMapping(value = "/datagrid/getGoatCard", method = RequestMethod.POST)
public ModelAndView getGoatCard(@RequestParam Long id) {
    ModelAndView mv = new ModelAndView("goatCard");
    Goat goat = goatDataService.findGoatById(id);
    mv.addObject("goat",goat);
    return mv;
}

然后可以在JSP文件中使用山羊。顺便说一句,为了检索数据,最好使用 RequestMethod.GET

2020-06-10