论坛首页 Java企业应用论坛

给 nutz 添加 freemarker 视图

浏览 7536 次
精华帖 (12) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-05   最后修改:2009-12-16
昨天熟悉了一下nutz框架感觉不错,体积很小而且学习的门槛低,不像ssh2那样臃肿,但是他默认提供的视图不支持freemarker。
我是freemarker用久了已经离不开了,所以就按照它提供的视图接口做了个插件。
代码的一部分是参照struts2写的。

安装

1.把插件jar包和freemarker包放在lib目录下。

2.把freemarker的配置文件freemarker.properties放在classes目录下(不放这个文件会出错)

3.在主入口函数上加:@Views({FreemarkerViewMaker.class}) 注释
@Modules( { HostAction.class }) 
@IocBy(type = JsonIocProvider.class, args = { "ioc/dao.js"}) 
@SetupBy(MvcSetup.class) 
@Views({FreemarkerViewMaker.class}) 
@Localization("msg") 
@Fail("json")  
public class MainModule {
	
}


4.如果想让freemarker支持jsp标签就在web.xml中放上一个servlet。这点和struts2设置是一样的。
<servlet>
		<servlet-name>JspSupportServlet</servlet-name>
		<servlet-class>
			org.nutz.mvc.view.JspSupportServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
  </servlet>


到此就大功告成了。

使用

转向@Ok("jsp:html.info")注释就可以改成@Ok("fm:/WEB-INF/html/info.html")。
	@At	
	//@Ok("jsp:html.info")
	@Ok("fm:/WEB-INF/html/info.html")
	public String list(@Param("word") String word,HttpServletRequest request){
		if(word!=null)
			return word;
		return "测试";
	}


至于它的本地化字符串直接在模板中 ${Session["msg"].save} 取即可。

例子

模板代码:
[#assign fck=JspTaglibs["/WEB-INF/FCKeditor.tld"]]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>info.html</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  </head>
  
  <body>  
   <!--fckeditor编辑器start-->
   [@fck.editor id="content" 
              basePath="${base}/jfeditor/"
              width="800" 
              height="300"
              toolbarSet="edit"]${obj}[/@fck.editor]
   <!--fckeditor编辑器end-->
    <input type="submit" value="${Session["msg"].save}" />&nbsp;
    <input type="reset" value="${Session["msg"].reset}"  />
  </body>
</html>


效果



2009-12-16更新
  更新个小的地方,模板中request取值直接可以${key}而不用${Request.key}。
  • 大小: 40.6 KB
   发表时间:2009-12-06   最后修改:2009-12-06
楼主的文章非常好,我引用到 Wiki 页里啦  

@see http://code.google.com/p/nutz/wiki/resources
0 请登录后投票
   发表时间:2009-12-06   最后修改:2009-12-06
现在正学习nutz框架感觉不错,准备应用到我的一个网站项目上。
希望zozoh尽快完善下文档。
0 请登录后投票
   发表时间:2009-12-06  
axhack 写道
现在正学习nutz框架感觉不错,准备应用到我的一个网站项目上。
希望zozoh尽快完善下文档。


呃...... 你还希望文档在哪些地方更加完善呢?
现在 Dao, Mvc, Ioc, 以及一些 Java 的帮助函数的文档都有了,
你能具体提一下,希望哪些文档更深入写,哪些文档在全面些,等等
0 请登录后投票
   发表时间:2009-12-06   最后修改:2009-12-06

等我真正应用到项目时我在提一些适合我们菜鸟的文档要深入写的地方。
现在我只看了mvc的文档。
0 请登录后投票
   发表时间:2009-12-06  
axhack 写道

等我真正应用到项目时我在提一些适合我们菜鸟的文档要深入写的地方。
现在我只看了mvc的文档。


恩,期待你的更多建议 
0 请登录后投票
   发表时间:2009-12-06   最后修改:2009-12-06
这么好的东西!!!
0 请登录后投票
   发表时间:2009-12-06  
虽然nutz不错,但是以前好多项目都建立在ssh上,懒得换了!!唉
0 请登录后投票
   发表时间:2009-12-06  
nutz这个框架很好用吗 那天试试
0 请登录后投票
   发表时间:2009-12-07  
持续关注,虽然看不懂
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics