Spring MVC。如何使用model作为参数将JSP处理为字符串

时间:2016-03-09 08:39:33

标签: jsp spring-mvc freemarker

相当于FreeMarkerFreeMarkerTemplateUtils.processTemplateIntoString的JSP,它接受两个参数(模板模板,对象模型)。

使用FreeMarker,代码如下:

public String getReport(ModelMap model) throws Exception {
    model.addAttribute("name",  "tim");
    String template = "testing.ftl";
    String htmlStr = FreeMarkerTemplateUtils.processTemplateIntoString(
            freemarkerConfig.getConfiguration().getTemplate(template),
            model);
    // ...
}

如何使用JSP实现上述目标?

1 个答案:

答案 0 :(得分:0)

使用JSP有两种选择:

1)填写模型并返回视图的逻辑名称

2)创建并返回ModelAndView对象

控制器 - 选项1

public String getReport(Model model) throws Exception {

    model.addAttribute("name",  "tim");

    //you should have testing.jsp
    return "testing";
}

控制器 - 选项2

public ModelAndView getReport(HttpServletRequest arg0,
        HttpServletResponse arg1) throws Exception {

    ModelAndView modelAndView = new ModelAndView("testing");
    modelAndView.addObject("name", "tim");

    return modelAndView;
}

在两种方式中,视图(JSP页面)都可以访问模型数据,如下所示。

<强> testing.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
    <p>${name}</p>
</body>
</html>