JSF结合Richfaces使用时的一种数据库分页方式
摘要: 在JSF和Richfaces的官方示例里面没发现正经的数据库分页示例,于是自己轮了一个,还算比较满意,分享出来。
struts等框架,视图(jsp、freemarker等)直接获取action中准备好的数据结果集合,请求下一页数据的时候,同样后台action处理请求,把action中的数据集合用新的这一页数据替换掉,然后渲染页面,从而实现分页。每次请求action的处理过程可以拿到页号等信息,所以在action调用service的时候就可以使用这些信息,调用相应的方法做分页数据查询。
JSF结合Richfaces做这个事情和Struts等框架有有很大的区别。
阅读全文
Hazelcast作为hibernate缓存和业务缓存
摘要: 做去皮儿网(http://www.qupier.com),内容管理是一个系统,前端网站是一个系统,这两个系统之间独立部署,但是缓存要能够互通。例如后台修改了某个消息类型的说明,在前段网站上要能够展现出来(使用了hibernate的查询缓存)。其他的一些场景也许要缓存,例如网站的shiro权限信息缓存,不过这个不需要和后端系统互通。但是既然开搞,也不好意思再挂着ehcache。于是一并升级。
前面一篇日志各种碰壁后,终于找到了理论上能够实现功能的两个产品:gemfire和hazelcast。于是,开始尝试。
阅读全文
找集中式缓存做hibernate second level cache和业务缓存,失败
摘要: 依然,先发广告:去皮儿网(http://www.qupier.com),每月26日通知你是否中签。已经推出广州的摇号结果通知了。
之前做业务系统,缓存用的是ehcache,集群的时候用multicast广播通知。随着节点的增多,希望把整个缓存切换到集中式缓存上来。折腾了两天,各种碰壁。
阅读全文
基于Spring实现seam形式的事件机制
摘要: 照例先做广告:去皮儿网(http://www.qupier.com),每月26日通知你是否中签。很快要退出广州的摇号结果通知了。
Seam的Events用的很舒服,spring提供的事件机制太罗嗦,所以起了念头,着这思路移植一下。最终效果如下:
//发布事件
Events.instance().fire(eventName,arg1,arg2.);
//发布异步事件
Events.instance().fireAsynchronous(eventName,arg1,arg2.);
//在事务中,发布当事务成功commit时触发的事件
Events.instance().fireOnTransactionSuccess(eventName,arg1,arg2.);
//在事务中,发布当事务完成(commit/rollback)时触发的事件
Events.instance().fireOnTransactionCompletion(eventName,arg1,arg2
阅读全文
建立功能级别的组件
摘要: 先做个广告,去皮儿网,可以每月26日通知你是否摇号中签。http://www.qupier.com
一直以来,组件一直都建立在技术的层面上。由于业务的复杂多变,似乎没有人想着把业务部分也做成可重用的组件。
我们团队在过去的两年里面在这个方面做了一些常识,写出来供网友参考、拍砖。
阅读全文
走在组件化的路上(七)——JSF的优势之使用View作用域的Action
摘要: 在以往的应用开发过程中,后端的业务组件(Action/Service/Dao),可以被设置为几种作用域:request、session、application。我们不可能把与每次请求关系很强的一些信息(例如某个列表页面要列出来的数据集合)简单的放到session里面去,这就导致了每次请求之间的大部分数据是不可能共享的。使用JSF,我们实现了一种叫做view的作用域,在不同的请求之间共享信息。
阅读全文
走在组件化的路上(六)——JSF的优势之自定义组件与模块化
摘要: JSF的很多文档上面说,要建立一个自定义组件,需要定义继承自UIComponentBase之类的类,然后写decode/encode方法等等,一大套内容,很复杂。幸好我们有其他的办法。其实定义一个组件在大多数情况下是不用去写这样的代码的。本节的内容是一个选择true/false两个值得下拉框组件。定义一个这样的组件需要做如下工作:
阅读全文
走在组件化的路上(五)——JSF的优势之从url到页面r
摘要: 我看到的若干mvc框架在展现一个包含动态数据内容的页面的时候,都是这样做的:请求/xx.do,到达某个action,执行配置好或者根据url映射到的某个方法,初始化数据,放到某个context里面(例如Request,或者struts用的ognl的context),然后根据配置或者规则,forward到某页面,然后展现。
这样做的好处是强制性的分离了展现和逻辑,缺点是多了若干配置,不自然。
JSF的路子和asp/php是一样的,你请求/a.xhtml,那么,ok,加载/a.xhtml文件。例如a.xhtml主体内容如下:
阅读全文
走在组件化的路上(四)——JSF的优势之了解前端状态
摘要: 先补充一下上一篇留下的尾巴:最早看JSF的书的时候,使用jsp作为页面,#{xx}这样的标记不能直接写在页面里,必须套在一个标记里面(和struts2里面的ognl一样郁闷)。后来才知道,这是jsp的问题,不是JSF的问题。现在大家都是用facelets作JSF的展现,JSF2.0更是把这个标准化为首选。于是直接在页面上写#{someAction.doSth('Hello')},完全OK,页面加载的时候会触发调用该方法。
然后我们再来看后端知道前端有什么的例子:
阅读全文
走在组件化的路上(三)——JSF的优势之忘记http
摘要: 现在开始说JSF的优势。一个一个的说,最后整理的时候再分主次吧,现在先就针对上面的几个问题来说。
1.URL到action method
阅读全文
走在组件化的路上(二)——JSF能够解决什么问题
摘要: 首先,看看在使用struts等框架做开发的时候,遇到的一些问题.
阅读全文
走在组件化的路上(一)——缘起
摘要: 09年4月我从A公司离职,被同事拉到一个创业团队做网页游戏,他们当时使用的技术体系是基于Seam的。而我则是SSH的忠实用户,此前一直跟随江南白衣、appfuse的路线,大大小小也做了一些项目,也自己攒了一堆轮子。花了1年多的时间在一个基于元数据的基础框架上面,那时候我基本上掌握了maven的简单使用,于是自己做的一些基础性的东西也都是使用maven来做依赖管理、版本发布。
阅读全文