Nutz中加入自定义视图之freemarker

安装

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

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

3.在主入口函数上加:@Views({FreemarkerViewMaker.class}) 注释
Java代码 复制代码 收藏代码
  1. @Modules( { HostAction.class })   
  2. @IocBy(type = JsonIocProvider.class, args = { "ioc/dao.js"})   
  3. @SetupBy(MvcSetup.class)   
  4. @Views({FreemarkerViewMaker.class})   
  5. @Localization("msg")   
  6. @Fail("json")    
  7. public class MainModule {  
  8.       
  9. }  


4.如果想让freemarker支持jsp标签就在web.xml中放上一个servlet。这点和struts2设置是一样的。
Xml代码 复制代码 收藏代码
  1. <servlet>  
  2.         <servlet-name>JspSupportServlet</servlet-name>  
  3.         <servlet-class>  
  4.             org.nutz.mvc.view.JspSupportServlet  
  5.         </servlet-class>  
  6.         <load-on-startup>1</load-on-startup>  
  7.   </servlet>  


到此就大功告成了。

使用

转向@Ok("jsp:html.info")注释就可以改成@Ok("fm:/WEB-INF/html/info.html")。
Java代码 复制代码 收藏代码
  1. @At   
  2. //@Ok("jsp:html.info")  
  3. @Ok("fm:/WEB-INF/html/info.html")  
  4. public String list(@Param("word") String word,HttpServletRequest request){  
  5.     if(word!=null)  
  6.         return word;  
  7.     return "测试";  
  8. }  


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

例子

模板代码:
Html代码 复制代码 收藏代码
  1. [#assign fck=JspTaglibs["/WEB-INF/FCKeditor.tld"]]  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  3. <html xmlns="http://www.w3.org/1999/xhtml">  
  4.   <head>  
  5.     <title>info.html</title>  
  6.     <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>  
  7.   </head>  
  8.     
  9.   <body>    
  10.    <!--fckeditor编辑器start-->  
  11.    [@fck.editor id="content"   
  12.               basePath="${base}/jfeditor/"  
  13.               width="800"   
  14.               height="300"  
  15.               toolbarSet="edit"]${obj}[/@fck.editor]  
  16.    <!--fckeditor编辑器end-->  
  17.     <input type="submit" value="${Session["msg"].save}" />&nbsp;  
  18.     <input type="reset" value="${Session["msg"].reset}"  />  
  19.   </body>  
  20. </html>  


效果



2009-12-16更新
  更新个小的地方,模板中request取值直接可以${key}而不用${Request.key}。
posted @ 2013-03-29 19:48  6小贝  阅读(906)  评论(0)    收藏  举报