基本上,您可以创建一个仅包含所需内容的切片视图,而不包含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>
Run Code Online (Sandbox Code Playgroud)
处理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";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6823 次 |
| 最近记录: |