公司的项目使用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的功能,这样能少引用几个类。
好了要睡觉了,剩下的明天再研究。
分享到:
相关推荐
让nutz支持freemarker。 具体使用和在struts2中使用是一样的
NULL 博文链接:https://536762164-qq-com.iteye.com/blog/1872468
nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册
Nutz, 它是一组轻便小型的框架的集合。...如果你觉得 Java 语法不如 Ruby 便捷, Nutz.Castor 以及 Nutz.Lang 专为你设计 如果你以前根本没接触过 SSH ,只使用 JDBC 编程, 整个 Nutz 专门为你设计
用于nutz邮箱验证jar包
nutz生成javabean工具.zip
可连接多种数据库根据表直接生成nutz所需的bean
nutz框架使用手册,从零到有深入学习nutz平台开发
对于 Java 程序员来说,除 SSH 之外,可能还有另外一个选择: Nutz 当然,它是开源的,并且是完全免费的。 同传统的 SSH 相比,它具备如下特点: 轻 -- 当前最新版,整个 jar 文件共 820k 薄 -- 针对 JDBC 的薄封装...
可以快速定位路径 页面 本jar包是nutz实用插件 希望大家多多下载
nutz框架jar包
nutz框架开发手册,框架很方便使用的,和大家分享
在做nutz redis集成的实时,由于依赖包的问题被坑了一把,为了后人不要走同样的路,把所有依赖包放在上面了。
Spring 里采用 Nutz.Dao ,又比如在 Nutz.Ioc 里使用 Hibernate 等整 -- 它所有功能均不依赖第三方 jar 文件。这就意味着:如果一个 Web 应用,你在 WEB-INF/lib 下只 需要放置一个 nutz.jar 就够了当然你要使用其它...
nutz-1.r.60.jar
用开源框架nutz搭建的MVC框架,适合小型系统的开发,快捷方便!
nutz-1.r.61-发布包
用于部署nutz下的junit测试工具,需要jetty-all这个jar包和servlet-api2.5
nutz jar包