`
axhack
  • 浏览: 13141 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

给 nutz 添加 freemarker 视图

    博客分类:
  • java
阅读更多
昨天熟悉了一下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
分享到:
评论
18 楼 RememberTheMilk 2012-12-17  
RememberTheMilk 写道
title的编码有问题,咋办,亲

额  解决了,嘿嘿,忘记给freemaker.properties写内容了。
17 楼 RememberTheMilk 2012-12-17  
title的编码有问题,咋办,亲
16 楼 zozoh 2009-12-09  
天机老人 写道
感觉少样东西model 生成 数据库(当然这个东西不会太小!)

当然我也就站着说话不腰疼,见笑了!


这个会在稍后的代码生成器项目里做
15 楼 axhack 2009-12-09  
天机老人 写道
感觉少样东西model 生成 数据库(当然这个东西不会太小!)

当然我也就站着说话不腰疼,见笑了!

有好建议的话给这个框架的作者提,
作者人不错。
14 楼 天机老人 2009-12-07  
感觉少样东西model 生成 数据库(当然这个东西不会太小!)

当然我也就站着说话不腰疼,见笑了!
13 楼 zm_pc 2009-12-07  
支持中国人自己的开源!楼主加油!
12 楼 zozoh 2009-12-07  
topcode 写道
nutz真的很轻便,能带来很清爽的感觉.不过这文档需要整理完备哦
zozoh,看好你哦!


你能提点意见:现在的这些文档,哪些还需要深入的。 哪些写的不太好。
我这段时间着重改改
11 楼 topcode 2009-12-07  
nutz真的很轻便,能带来很清爽的感觉.不过这文档需要整理完备哦
zozoh,看好你哦!
10 楼 birdwindy 2009-12-07  
nutz很轻巧,也很容易学。大家可以试试。
感谢楼主提供的freemaker的视图
9 楼 TheMatrix 2009-12-07  
持续关注,虽然看不懂
8 楼 whaosoft 2009-12-06  
nutz这个框架很好用吗 那天试试
7 楼 kjj 2009-12-06  
虽然nutz不错,但是以前好多项目都建立在ssh上,懒得换了!!唉
6 楼 wendal 2009-12-06  
这么好的东西!!!
5 楼 zozoh 2009-12-06  
axhack 写道

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


恩,期待你的更多建议 
4 楼 axhack 2009-12-06  

等我真正应用到项目时我在提一些适合我们菜鸟的文档要深入写的地方。
现在我只看了mvc的文档。
3 楼 zozoh 2009-12-06  
axhack 写道
现在正学习nutz框架感觉不错,准备应用到我的一个网站项目上。
希望zozoh尽快完善下文档。


呃...... 你还希望文档在哪些地方更加完善呢?
现在 Dao, Mvc, Ioc, 以及一些 Java 的帮助函数的文档都有了,
你能具体提一下,希望哪些文档更深入写,哪些文档在全面些,等等
2 楼 axhack 2009-12-06  
现在正学习nutz框架感觉不错,准备应用到我的一个网站项目上。
希望zozoh尽快完善下文档。
1 楼 zozoh 2009-12-06  
楼主的文章非常好,我引用到 Wiki 页里啦  

@see http://code.google.com/p/nutz/wiki/resources

相关推荐

    nutz的freemarker视图插件

    "nutz的freemarker视图插件"使得Nutz框架能够无缝地集成Freemarker,提供了以下关键特性: 1. **配置**: - 在Nutz项目中添加`nutz-freemarker-plugin.jar`库,配置Nutz的MVC模块,指定视图解析器为Freemarker。 ...

    TT随笔五 Nutz自定义视图以及提示信息的统一管理

    默认情况下,Nutz会尝试将视图名解析为一个JSP或者FreeMarker模板文件。然而,开发者可能希望实现自定义的视图解析逻辑,例如使用Thymeleaf或其他模板引擎。 2. 自定义ViewResolver:要实现自定义视图解析,你需要...

    nutz搭建的MVC框架

    Nutz MVC支持多种视图技术,如JSP、FreeMarker、Velocity等,通常通过`@Render`注解来指定渲染方式。 **二、搭建Nutz MVC框架步骤** 1. **环境准备**:确保已经安装了Java SDK和一个Servlet容器,如Tomcat或Jetty...

    nutz除了ssh框架比较好的框架

    首先,Nutz的核心组件包括了Ioc(Inversion of Control,控制反转)和Mvc(Model-View-Controller,模型-视图-控制器)两大部分。Ioc容器负责对象的创建和管理,使得代码间的耦合度降低,提高了可维护性。Mvc模式则...

    nutz-master.zip

    它支持RESTful API设计,提供模板引擎(如FreeMarker、Velocity等)进行视图渲染,并且集成了HTTP客户端库,方便进行服务器端的HTTP请求。 7. **非Web环境**: 尽管Nutz最初是为Web应用设计的,但其核心组件如IoC...

    有关Nutz工程

    在MVC模式下,Nutz提供了Controller、Service、DAO三层架构,使得业务逻辑与视图层分离,便于代码维护和扩展。Controller负责处理HTTP请求,Service层处理业务逻辑,而DAO层则与数据库交互。Nutz还提供了强大的模板...

    nutz-1.a.25_jdoc.zip

    它允许开发者以简洁的代码实现业务逻辑,并且支持多种视图技术,如JSP、FreeMarker等。 2. **Nutz ORM**:Nutz ORM(对象关系映射)模块提供了对数据库操作的便捷支持,可以自动处理SQL语句的生成和执行,支持JDBC...

    SpringMVC+Nutz框架介绍 (2).docx

    它支持多种视图技术,如JSP、FreeMarker、Velocity等,并且拥有良好的可扩展性,允许自定义拦截器和处理器映射。SpringMVC还支持国际化、主题和数据验证,以及文件上传和下载功能。 **Nutz** Nutz是一个高度灵活的...

    NutzWk企业级开源开发框架 v5.2.6-源码.zip

    - **视图模板**:可能包含HTML、FreeMarker或其他模板引擎文件,用于渲染前端页面。 - **测试代码**:通过单元测试和集成测试确保代码质量,通常位于`test`目录下。 3. **解压密码**:"www.cqlsoft.com"是解压此...

    nutMvc 最专业的讲解

    `Project`可能是项目的源代码目录,其中包含了应用的控制器、模型、视图等组件。 ### 其他依赖库 - `h2-1.2.144.jar`:H2数据库引擎,可能被用作开发和测试时的本地数据库。 - `nutz-1.b.37-RC.jar`:Nutz的核心库...

    Beetl模板引擎入门教程.pdf

    对于MVC架构,Beetl能够很好地配合Spring MVC、JFinal、Struts、Nutz以及Jodd等框架,实现高效的视图层渲染。 Beetl还提供了如`for-else`、`select-case`等控制结构,以及非空检查和三元运算符,使得模板语言更加...

Global site tag (gtag.js) - Google Analytics