Spring mvc 使用jQuery加载片段
这几天我在和斯普林联系。我遇到了一个关于碎片的问题。我已经使用Spring mvc 使用jQuery加载片段,spring-mvc,thymeleaf,Spring Mvc,Thymeleaf,这几天我在和斯普林联系。我遇到了一个关于碎片的问题。我已经使用@controller编写了一个Spring控制器,下面是一个方法@PostMapping @PostMapping(value="/xxx/yyy/add",consumes="application/json",produces="application/json") public @ResponseBody AModel addMethod(@Valid @RequestBody AModel aModel, BindingRe
@controller
编写了一个Spring控制器,下面是一个方法@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/addurl。JSON被映射到AModel对象,并且可以正常工作。但我将返回一个AModel
对象作为json响应。没有一个字符串提到thymeleaf片段。我试图重新加载的thymeleaf片段包含一个数据表。有没有人能给我指出正确的方向?谢谢。试试这个
@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;
}
@RequestMapping(value=“/abc”,method=RequestMethod.GET,products=“application/json”)
私有响应库测试(HttpServletRequestHttpServletRequest,HttpServletResponse HttpServletResponse)
{
响应=新响应();
WebContext WebContext=新的WebContext(httpServletRequest、httpServletResponse、servletContext);
setData(generateTemplate(webContext、viewResolver、“fragmentpath”);
response.setMessage(“成功”);
答复:setStatus(成功);
返回响应;
}
公共静态字符串生成器模板(WebContext ctx、ViewResolver、ViewResolver、String baseTemplate)
{
TemplateEngine引擎=((TeleLabViewResolver)viewResolver.getTemplateEngine();
String renderedHtml=engine.process(baseTemplate,ctx);
返回renderedHtml;
}
您是否尝试过将返回类型更改为字符串?这就是@SupunDharmarathne,大多数示例都有这种方法。但是我需要在aModel
对象中引用一些额外的数据。因此,我正试图找到一种方法,不必通过jQuery重写DOM。如果json响应包含表数据,它会正常吗?@SupunDharmarathne当前不会,它不会。我试图找到一种方法来加载Thymeleaf片段,而不将控制器方法返回类型设置为String。请参阅下面的答案:)希望这会有所帮助