Ajax Spring3没有在jsp中呈现模型

Ajax Spring3没有在jsp中呈现模型,ajax,jsp,spring-mvc,el,spring-3,Ajax,Jsp,Spring Mvc,El,Spring 3,对于Spring3没有使用表达式语言在jsp中呈现我的模型,我有点失望,我不得不承认我不明白为什么。如果有人能帮助我理解为什么我不能让它工作,那将是非常棒的 以下是我的背景: 我的控制器有一个返回jsp片段的方法(由ajax从我的客户端调用): @RequestMapping(value = "/datagrid/getGoatCard", method = RequestMethod.POST) public String getGoatCard(@RequestParam Long id,

对于Spring3没有使用表达式语言在jsp中呈现我的模型,我有点失望,我不得不承认我不明白为什么。如果有人能帮助我理解为什么我不能让它工作,那将是非常棒的

以下是我的背景:

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

@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库)

我认为注释@modeldattribute(“goat”)将名为“goat”的模型链接到我的jsp,允许使用EL呈现模型,但似乎不是这样


有人知道吗,也许只是我做错了一件小事,但我不知道是哪一件

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

@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文件中使用goat。
顺便说一句,为了检索数据,最好使用RequestMethod。获取

非常感谢您的帮助。只是一个更新代码的答案。 当我使用Spring3时,最好是编写

@RequestMapping(value = "/datagrid/getGoatCard", method = RequestMethod.POST)
public String getGoatCard(@RequestParam Long id,
        Model model) {
    model.addAttribute("goat", goatDataService.findGoatById(id));
    return "goatCard";
}
<> P>这只是为了适应Spring基金会的预配置(我同意这导致了相同的结果,但是Spring Stand推荐使用字符串返回而不是MAV)。
再次感谢您的帮助

谢谢您的帮助,现在一切正常。我想我不明白的是为什么@modeldattribute注释适用于表单而不适用于呈现页面。