如上图所示,BeetlGroupUtilConfiguration有很多属性,列举如下
- configFileResource 属性指定了配置文件所在路径,如果不指定,则默认在classpath下
- functions 指定了被spring容器管理的function,key为注册的方法名,value-ref 指定的bean的名称
- functionPackages,指定了被spring容器管理的functionPackage,key为注册的方法包名,value-ref 指定的bean的名称
- tagFactorys ,注册tag类,key是tag类的名称,value-ref指向一个org.beetl.ext.spring.SpringBeanTagFactory实例,该子类是一个Spring管理的Bean。属性name对应的bean就是tag类。需要注意,由于Tag是有状态的,因此,必须申明Scope为 "prototype"。如代码:
- typeFormats: 同functions,参数是 Map
, Format>,其中key为类型Class - virtualClassAttributes 同functions,参数Map
, VirtualClassAttribute>,其中key为类型Class - virtualAttributeEvals ,类型为List
- resourceLoader,资源加载器 ,值是 实现ResourceLoader的一个Bean
- errorHandler ,错误处理,值是实现ErrorHandler的一个Bean
- sharedVars,同functions,类型是Map
,可以在此设置共享变量
注意视图解析器里的属性viewNames,这个用于判断controller返回的path到底应该交给哪个视图解析器来做。
- 以/template开头的是beetlViewResolver来渲染。
- 以/cmstemplate是交给cmsBeetlViewResolver渲染。
- 如果都没有匹配上,则是jsp渲染
如果你想更改此规则,你只能增加canHandle方法指定你的逻辑了。详情参考org.springframework.web.servlet.view.UrlBasedViewResolver.canHandle
- 以"redirect:"为前缀时:表示重定向,不产生BeetlView渲染模版,而直接通过Servlet的机制返回重定向响应.redirect:前缀后面的内容为重定向地址,可以采用相对地址(相对当前url),绝对地址(完整的url),如果采用/开头的地址,会自动的在前面接上当前Web应用的contextPath,即contextPath为test的Web应用中使用redirect:/admin/login.html 实际重定向地址为 /test/admin/login.html
- 以"forward:"为前缀时:表示转发,不产生BeetlView渲染模版。而是直接通过Servlet的机制转发请求(关于转发和重定向的区别,请自行查看Servlet API) forward:前缀后面的内容为转发地址,一般都是以/开头相对于当前Web应用的根目录
其他集成需要注意的事项:
- 如果根目录不是默认目录,可以通过添加root属性