微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 如何通过AJAX在Spring MVC中呈现tile视图?

我正在使用Spring 3 MVC构建一个Web应用程序,它具有通用布局和经常更改/刷新的“内容”div.内容标记位于自己的Tile中,我希望能够通过AJAX刷新该tile,而无需刷新整个页面.我知道如何从客户端激活AJAX请求并在控制器中处理它.我对Spring配置(查看,查看解析器等)感到困惑.有人有例子吗?

解决方法:

基本上,您可以创建一个仅包含所需内容的切片视图,而不包含HTML框架,并在处理ajax请求的控制器中呈现此视图/切片.

假设你有一个页面foo.jsp.在调用http://example.com/myapp/foo时,应该呈现一个整个html页面,其中包含foo.jsp作为正文的内容.在调用http://example.com/myapp/ajax/foo时,只应发送foo.jsp而不使用整个HTML框架,以便客户端可以通过ajax加载它并替换页面中的一部分.

您将最终得到两个视图定义,一个将foo.jsp嵌入整个页面,另一个仅包含foo.jsp本身. app-layout.jsp将包含具有“body”属性的整个HTML骨架.

<deFinition name="foo" template="/WEB-INF/layouts/app-layout.jspx">
    <put-attribute name="body">
        <deFinition template="/WEB-INF/views/foo.jsp">
            <put-attribute name="message" value="hello"/>
        </deFinition>
    </put-attribute>
</deFinition>

<deFinition name="ajax.foo" template="/WEB-INF/views/foo.jsp">
    <put-attribute name="message" value="hello"/>
</deFinition>

处理URL / ajax / foo的控制器将返回视图“ajax.foo”,处理URL / foo的控制器将返回视图“foo”.

@Controller
@RequestMapping("/ajax")
public void class AjaxController {
   @RequestMapping("/foo")
   public String foo() {
       return "ajax.foo";
   }
}

@Controller
@RequestMapping("/")
public void class AppController {
   @RequestMapping("/foo")
   public String foo() {
       return "foo";
   }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐