返回默认视图
1. 规则
这里的返回视图指的是经由路由方法返回视图的规则与控制,具体视图的访问路径等内容会在下一节介绍。
我们定义的所有路由方法,在工程启动时,Leap 默认都会为这些方法生成路径一致的视图映射。
当一个请求过来,相应的路由方法执行完之后,Leap 会去找对应路径下是否存在视图:
如果不存在,则以路由方法返回为接口返回内容,就是我们前面所介绍的;
如果存在,则以视图渲染结果为接口返回内容,也就是返回视图。
2. 示例
因此当我们需要返回视图时,我们可以这样定义路由方法:
public class UserController {
public void myView(ViewData vd) {
vd.put("id", 123);
vd.put("name", "zhangsan");
}
}
因为这个接口的访问路径是 /user/my_view
,因此在视图目录下必须存在视图 /user/my_view.html
。
下面结合例子说说定义的要点:
void
返回类型:在路由方法myView
中,因为我们是返回视图,不需要路由方法返回数据,因此可以定义路由方法没有返回值。使用
ViewData
传递变量: 在路由方法参数中我们使用了内置类型ViewData
,并且向视图传递了视图变量以供视图渲染时使用。在前面内置参数类型一节中我们知道还有其他内置类型其实也可以拿到
ViewData
对象,或者是通过继承父类leap.web.action.ControllerBase
也可以拿到,因此通过其他方式设置视图变量也是可以的。