首页 > 解决方案 > Thymleaf ,使用 jQuery 加载片段

问题描述

这些天我正在用 Spring 检查 Thymeleaf。我遇到了一个关于片段的问题。我已经编写了一个 Spring 控制器使用@Controller,下面有一个方法@PostMapping是该方法

@PostMapping(value="/xxx/yyy/add",consumes="application/json",produces="application/json")
public @ResponseBody AModel addMethod(@Valid @RequestBody AModel aModel, BindingResult bindingResult)

我已经使用$.ajax方法将数据发布到 /xxx/yyy/add URL。JSON 映射到 AModel 对象并且它可以工作。但我将一个AModel对象作为 json 响应返回。没有提到百里香片段的字符串。我试图重新加载的百里香片段包含一个数据表。有人可以指出我如何做到这一点的正确方向吗?谢谢。

标签: spring-mvcthymeleaf

解决方案


试试这个。

@RequestMapping(value = "/abc", method = RequestMethod.GET, produces = "application/json")
private ResponseBody test( HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse )
{
    Response response = new Response<String>();
    WebContext webContext = new WebContext( httpServletRequest, httpServletResponse, servletContext );



    response.setData( generateTemplate( webContext, viewResolver, "fragmentpath") );
    response.setMessage( "Success" );
    response.setStatus(SUCCESS );

    return response;

}

  public static String generateTemplate( WebContext ctx, ViewResolver viewResolver, String baseTemplate)
{

    TemplateEngine engine = ( ( ThymeleafViewResolver ) viewResolver ).getTemplateEngine();

    String renderedHtml = engine.process( baseTemplate, ctx );
    return renderedHtml;

}

推荐阅读