jfinal在使用beetle模板时遇到一个问题

开源中国社区酱油哥 发布于 2014/04/27 22:06
阅读 1K+
收藏 0

@JFinal 你好,想跟你请教个问题: 

  我在使用beetl和jfinal 做开发 的时候遇到个问题,使用模板文件后缀扩展的情况会出问题 

  没找到有render含后缀的方法,然后找到com.jfinal.render.RenderFactory.getDefaultRender(String view) 方法可以使用模板后缀扩展, 但是在void com.jfinal.config.Constants.setViewType(ViewType viewType)中初始化的时候 如果为其他视图类型viewtype 不会改变

/**
	 * Set view type. The default value is ViewType.FREE_MARKER
	 * Controller.render(String view) will use the view type to render the view.
	 * @param viewType the view type 
	 */
	public void setViewType(ViewType viewType) {
		if (viewType == null)
			throw new IllegalArgumentException("viewType can not be null");
		
		if (viewType != ViewType.OTHER)	// setMainRenderFactory will set ViewType.OTHER
			this.viewType = viewType;
	}

我在初始化JFinalConfig 时 设置了me.setViewType(ViewType.OTHER);

请问是不是我其他地方配置有问题?

 


 

加载中
0
JFinal
JFinal

     不明白模板后缀扩展是什么意思。当 setView方法传入 ViewType.OTHER 参数时不会起作用,这个值是调用 setMainRenderFactory 时自动赋予的,代表当 ViewType 不是 FreeMarker、Jsp、Velocity时 viewType 变量所属的值。

JFinal
JFinal
回复 @MarcSong : 扩展一下 IMainRenderFactory或者用一个拦截器 getRender() 然后将 view 加上后缀扩展再 set 回去
开源中国社区酱油哥
开源中国社区酱油哥
就是比如我模板名称为 hello.html 那么我render("hello.html")才会出来,我想直接render("hello"),因为在最开始new render的时候已经设置了.html
0
如梦技术
如梦技术

楼主参看下 jfinal-bbs

开源中国社区酱油哥
开源中国社区酱油哥
我看了 但是里面直接是render("user.html") 而我的意思是想直接render("user") 就行
0
开源中国社区酱油哥
开源中国社区酱油哥

引用来自“JFinal”的评论

     不明白模板后缀扩展是什么意思。当 setView方法传入 ViewType.OTHER 参数时不会起作用,这个值是调用 setMainRenderFactory 时自动赋予的,代表当 ViewType 不是 FreeMarker、Jsp、Velocity时 viewType 变量所属的值。

回复 @JFinal : 我看了源码,可以这样做,但是你在RenderFactory.getDefaultRender() 提供了方法,我也是拓展的时候直接使用这个方法,里面获取到底ViewType viewType = constants.getViewType(); 为默认的ViewType.FREE_MARKER类型,然后我翻看了代码 发现你在Constants.setViewType()方法里面设置的时候有点没弄懂,所以求教育

/**
	 * Set view type. The default value is ViewType.FREE_MARKER
	 * Controller.render(String view) will use the view type to render the view.
	 * @param viewType the view type 
	 */
	public void setViewType(ViewType viewType) {
		if (viewType == null)
			throw new IllegalArgumentException("viewType can not be null");
		
		if (viewType != ViewType.OTHER)	// setMainRenderFactory will set ViewType.OTHER
			this.viewType = viewType;
	}




返回顶部
顶部