`

为nutz添加tiles视图

阅读更多

公司的项目使用struts1,这时我接触到了tiles,这个页面增强布局框架,使用了将近半年,感觉良好。最近有一个个人项目我采用nutz,感到只用jsp太麻烦,于是想将tiles整合进来。tiles一般是和struts这样的框架整合的例子多,单独用的几乎没有。于是狠下心去看tiles的主页,终于有了收获,用了一下午加一晚上终于跑通了例子,并将nutzView写好了

首先我使用了tiles2.2,去官网下载 bin包。
解压后,选取 tiles-jsp,tiles-core,tiles-servlet,tiles-api,
slf4j-api,slf4j-log4j12,conmmons-beanutils,commons-digester,commons-logging,jcl-over-slf4j,log4j这些jar,copy到 lib下。
然后

 
public class TestTileFactory extends BasicTilesContainerFactory {

	    @Override
	    protected List<URL> getSourceURLs(TilesApplicationContext applicationContext,
	            TilesRequestContextFactory contextFactory) {
	        List<URL> urls = new ArrayList<URL>();
	        try {
	            urls.add(applicationContext.getResource("/WEB-INF/tiles-defs.xml"));
	        } catch (IOException e) {
	            throw new DefinitionsFactoryException(
	                    "Cannot load definition URLs", e);
	        }
	        return urls;
	    }
}
  

  再添加 类

  public class TestTilesListener extends AbstractTilesListener {

	    @Override
	    protected TilesInitializer createTilesInitializer() {
	        return new TestTilesListenerInitializer();
	    }
	    private static class TestTilesListenerInitializer extends AbstractTilesInitializer {

	        @Override
	        protected AbstractTilesContainerFactory createContainerFactory(
	                TilesApplicationContext context) {
	            return new TestTileFactory();
	        }
	    }
}

 在web.xml中添加配置 

 <listener>

  		<listener-class>com.sh169.util.TestTilesListener</listener-class>
  </listener>

 然后是,添加nutz的view

 下面是代码

 public class TilesView implements View{

	private String viewName;
	
	public TilesView(){}
	public TilesView(String viewName){
		this.viewName = viewName;
	}
	@SuppressWarnings("deprecation")
	@Override
	public void render(HttpServletRequest req, HttpServletResponse resp,
			Object obj) throws Throwable {
		req.setAttribute("obj", obj);
		TilesContainer tc = TilesAccess.getContainer(req.getSession().getServletContext());
		tc.render(viewName, req,resp);
	}

}
public TilesViewMaker(){}
	@Override
	public View make(Ioc ioc, String type, String value) {
		if("tiles".equalsIgnoreCase(type))
			return new TilesView(value);
		return null;
	}

 

 使用时添加 @ok("tiles:yourdefname")即可

 

使用感受:引用的jar包太多了,精简到4个比较能接受,还有这是2.1中的例子,在2.2中tilesAccess中的 getContainer方法被提示不可用,应该有其他方法可以替代,以后有时间研究下 tiles的源码,自己整理成一个jar包,这样引用比较方便

我感觉包这样划分比较好,tile-core,tile-jsp,tile-freemarker,依次类推。这样使用起来将会很方便,而且logger也应该写一个logger类,替代common-logging的功能,这样能少引用几个类。

好了要睡觉了,剩下的明天再研究。

1
0
分享到:
评论

相关推荐

    nutz的freemarker视图插件

    - 在Nutz项目中添加`nutz-freemarker-plugin.jar`库,配置Nutz的MVC模块,指定视图解析器为Freemarker。 - 配置Freemarker的配置文件(如`freemarker.properties`),设置模板路径、缓存策略等。 2. **模板解析**...

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

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

    在Nutz[1.b.38]中使用视图对关联数据表的操作

    3. **Nutz ORM与视图**:如果项目中使用了Nutz的ORM特性,视图可以被映射为一个实体类,通过对象的方式来操作。只需在实体类上添加相应的注解,如`@Table`,并定义对应的属性和`@Id`,然后在SQL映射文件中定义视图...

    nutz_redis集成依赖包

    为避免这些问题,建议使用最新稳定版的Nutz和Redis客户端,同时确保所有依赖都在同一项目管理工具中统一管理。如果遇到冲突,可以通过排除特定版本或使用`&lt;dependencyManagement&gt;`标签来控制全局依赖版本。 6. **...

    nutz需要的jar包

    总之,Nutz是一个全面且灵活的Java框架,其所需jar包涵盖了开发、数据访问、Web处理、安全、日志等多个方面,为Java开发者提供了强大的工具集,帮助他们高效地构建高质量的应用系统。理解并熟练掌握这些jar包的功能...

    nutz搭建的MVC框架

    Nutz MVC的主要组件包括控制器(Controller)、模型(Model)和视图(View),它们共同构成了MVC设计模式的核心: 1. **控制器(Controller)**:控制器负责接收HTTP请求,解析请求参数,调用相应的业务逻辑(即...

    nutz框架使用手册.zip

    Nutz框架是一个基于Java语言的轻量级开源框架,它以简单、实用、高效为设计理念,为Java开发者提供了一整套全面的开发解决方案。Nutz框架由一系列子项目组成,包括Nutz IOC(依赖注入)、Nutz DAO(数据访问对象)、...

    nutz学习资料2

    1. **MVC模式**:Nutz提供了MVC架构支持,允许开发者将业务逻辑、视图和控制逻辑分离,便于维护和扩展。 2. **IoC(Inversion of Control)**:Nutz实现了依赖注入,有助于降低代码间的耦合度,提高组件的可重用性。...

    nutz初使用之MVC HelloWorld (netbeans jsp版)

    在本文中,我们将深入探讨如何使用Nutz框架创建一个简单的MVC(Model-View-Controller)应用程序,以“HelloWorld”为例。Nutz是一个轻量级的Java开发框架,它提供了全面的MVC支持,使得开发者能够高效地构建Web应用...

    nutz生成javabean工具.zip

    在给定的压缩包"nutz生成javabean工具.zip"中,我们可以看到一个名为"NutzCodematic-master"的项目,这很可能是Nutz提供的一个用于自动化生成JavaBean类的工具。下面我们将详细探讨Nutz Codematic及其在Java开发中的...

    nutz代码生成器

    NutzCodematic是一款基于Nutz框架的代码生成器工具,专为提高开发效率而设计。它允许开发者连接到多种类型的数据库,然后自动生成与数据库表对应的Nutz框架所需的Bean类。这样,开发者无需手动编写重复的Java代码,...

    nutz 文件上传例子

    接着,我们需要配置 `nutz-plugin-multiupload` 插件,这可能涉及到在 `conf/nutz.conf` 文件中添加相应的配置项,例如设置临时文件路径、最大文件大小等参数。 在代码实现上,Nutz 提供了 `org.nutz....

    nutz应用示例

    这个名为"Nutz应用示例"的项目旨在帮助开发者更好地理解和使用Nutz框架。在这个项目中,我们可以看到一个基本的Nutz应用是如何构建的,以及如何与MySQL数据库进行交互。 首先,Nutz框架的核心是其MVC(Model-View-...

    nutz-1.r.61-发布包

    "nutz-1.r.61-发布包"是Nutz框架的一个版本更新,具体为1.r.61版本。这个发布包包含了该版本的文档、源代码、编译后的类库以及相关的辅助文件,便于开发者下载、学习和使用。 1. **Nutz框架概述** Nutz 是一个轻量...

    nutz框架开发手册

    ### Nutz框架开发手册知识点详解 #### 一、引言 - **背景介绍**:随着Web开发技术的不断发展,Java虽然仍然占据着重要的地位,但其在开发效率方面相较于脚本语言存在一定的劣势。为此,Nutz框架应运而生,旨在通过...

    nutz-1.r.58

    将此jar包添加到项目的类路径中,开发者就能在项目中使用Nutz框架的各种功能,如控制反转(IoC)、注解驱动开发、数据库操作、Web开发等。 3. `nutz-1.r.58-sources.jar`:这个文件提供了Nutz框架的源代码,对于想...

    nutz初使用之MVC HelloWorld (netbeans html,js版)

    - Nutz MVC是Nutz框架的一部分,用于构建Web应用程序,提供了控制器、视图和模型的结构,支持RESTful风格的URL路由。 2. MVC模式: - Model(模型):负责处理业务逻辑,与数据库交互,存储和管理数据。 - View...

    nutz 使用手册 nutz-1.a.33-manual.pdf

    ### Nutz 使用手册知识点概述 #### 一、Nutz 框架简介 - **背景与定位**:Nutz 是一款旨在提高 Java Web 开发效率的轻量级框架集。随着脚本语言在 Web 开发领域的兴起,Java 开发者面临开发效率低下等问题。Nutz ...

    wendal-nutz-master.zip

    NUTZ是一个轻量级、高性能的Java开发框架,它为开发者提供了全面的工具和库,使得构建Web应用变得更加高效和便捷。这个压缩包“wendal-nutz-master.zip”包含了NUTZ框架的一个示例项目或者学习资源,帮助初学者理解...

Global site tag (gtag.js) - Google Analytics