如何从ajax调用返回jsp?

时间:2015-02-13 07:36:09

标签: ajax spring-mvc

我使用没有注释的spring mvc。 我想把jsp(html代码)作为来自ajax调用的响应。 我不想使用 response.getWriter()。print(..)。谁能告诉我任何其他解决方案。?

2 个答案:

答案 0 :(得分:0)

您可以像这样使用ModelAndView返回JSP

@RequestMapping (
        value = "/path/call",
        method = RequestMethod.POST
)
@ResponseBody
public ModelAndView blah(....) {
    return new ModelAndView("location to JSP file");
}

您可以使用以下方法将数据添加到MandV

/**
 * Add an attribute to the model.
 * @param attributeName name of the object to add to the model
 * @param attributeValue object to add to the model (never {@code null})
 * @see ModelMap#addAttribute(String, Object)
 * @see #getModelMap()
 */
public ModelAndView addObject(String attributeName, Object attributeValue) {
    getModelMap().addAttribute(attributeName, attributeValue);
    return this;
}    

答案 1 :(得分:0)

我强烈推荐阅读the documentation,如果没有真正的弹簧框架知识,你将很难使用它......正如已经提到的,你通常会有一个Controller类处理requests - 这些是用@RequestMapping注释的,控制器当然是用@Controller注释的。这是文档中的一个示例:

@Controller
@RequestMapping("/appointments")
public class AppointmentsController {

    private final AppointmentBook appointmentBook;

    @Autowired
    public AppointmentsController(AppointmentBook appointmentBook) {
        this.appointmentBook = appointmentBook;
    }

    @RequestMapping(method = RequestMethod.GET)
    public Map<String, Appointment> get() {
        return appointmentBook.getAppointmentsForToday();
    }

    @RequestMapping(value="/{day}", method = RequestMethod.GET)
    public Map<String, Appointment> getForDay(@PathVariable @DateTimeFormat(iso=ISO.DATE) Date day, Model model) {
        return appointmentBook.getAppointmentsForDay(day);
    }

    @RequestMapping(value="/new", method = RequestMethod.GET)
    public AppointmentForm getNewForm() {
        return new AppointmentForm();
    }

    @RequestMapping(method = RequestMethod.POST)
    public String add(@Valid AppointmentForm appointment, BindingResult result) {
        if (result.hasErrors()) {
            return "appointments/new";
        }
        appointmentBook.addAppointment(appointment);
        return "redirect:/appointments";
    }
}

如您所见,请求现在半自动解析/传递给JSP解析器,JSP解析器处理存储的JSP并输出HTML。这被称为MVC,尽管春天的MVC模型与标准观点略有不同,但它非常有用且有些标准化。

再一次:如果你想使用spring,阅读文档。这很重要也很有用。

  

没有注释的spring mvc

几乎打败了整个概念。我认为你需要重新做你的应用程序设计,显然它是有缺陷的 - 没有冒犯,我只是陈述显而易见的。