Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 使用jQuery加载片段_Spring Mvc_Thymeleaf - Fatal编程技术网

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。请参阅下面的答案:)希望这会有所帮助