今天下午又试了下自定义Drupal,发现不是那么简单的。
下载了不少的module,CCK, view,以及Tagadelic和对应的view。
不过还是理解了一些东西了,基本的使用有些了解了,还需要进一步的自定义了。
PS:下载的主题ZEN感觉不太好啊,太简单了,特别默认是那个什么StarterKIT,没有什么布局嘛。
今天下午又试了下自定义Drupal,发现不是那么简单的。
下载了不少的module,CCK, view,以及Tagadelic和对应的view。
不过还是理解了一些东西了,基本的使用有些了解了,还需要进一步的自定义了。
PS:下载的主题ZEN感觉不太好啊,太简单了,特别默认是那个什么StarterKIT,没有什么布局嘛。
ZK的分页功能默认是在客户端做的,也就是服务器端返回所有的结果,然后客户端每次显示一页的数据,翻页的时候不提交请求到服务器端重新查询。如果服务器端返回的结果比较多,这种方案就不太好了,要实现服务器端的分页也很简单,在使用Listbox或者grid的时候不要使用mold="paging",而是添加一个Paging组件:
<paging id="groupListboxPaging" pageSize="10"/>
然后给Paging增加事件监听:
final Paging paging = getPaging(pagingName);
paging.addEventListener(
"onPaging", new EventListener()
{
public void onEvent(Event event)
{
PagingEvent pagingEvent = (PagingEvent) event;
int pageNumber = pagingEvent.getActivePage();
int firstRow = pageNumber * paging.getPageSize();
queryInfos.get(listName).getPageInfo().setFirstRow(firstRow);
refreshList(listName);
}
});
代码中的getPaging和refreshList都是我自定义的方法,getPaging很简单,因为我的这个代码是在自定义的Window类里面的,所以:
protected Paging getPaging(String pagingName)
{
return (Paging) getFellow(pagingName);
}
而refreshList就比较复杂一些了,根据传入的list的名字查询结果并刷新list:
public void refreshList(String name)
{
try
{
getListbox(getListboxName(name)).setModel(new BindingListModelList(list(name), false));
}
catch (Throwable t)
{
handleException(t);
}
}
核心就是拿到Listbox或者Grid然后setModel。
这几天一直在研究ZK,感觉是我做web开发以来见到的最好的Web的UI框架。
美国那边的Consultant在给我们做UI,但是他们的UI的框架还在开发中,而且好像还在根据我们的一些要求不断的修改他们自己的框架,所以进度很慢,上个星期给了一个final drop,但是问题多多,发了一个问题列表,到现在也没有任何回应,我就趁着这个功夫用ZK做了一份功能和UI类似的,从代码量上讲比那个少,而且最重要的是UI的代码很干净整洁。
以后会大力推广这个东东,把我的经验都整理出来。
前几天抱怨没有好的Web框架,Bob推荐了ZK,这几天有时间的时候试了下,感觉确实不错。
用ZK做原型确实不错,数据都可以是hardcode的,ZK的文档基本上都是在这种模式下的,但是我打算做的是那种真正可以运行的demo,可以连接我们的后台Service跑的,这样搞的时候发现Sample奇缺,也没有好的最佳实践,主要是ZK本身确实很灵活,既可以在view里面嵌script实现,也可以写类来实现,而且也可以写类来创建组件,慢慢的摸索了下,根据自己的偏好搞出基本的东西来了。以后有时间搞完善了就放出来给大家参考吧。
ZK的几个主要问题:
我比较认可的特性:
做了这么多年的Web开发,感触最深的就是UI始终没有王者,虽然Web的Framework是一堆一堆,但是大家的注意力似乎都在MVC、Template以及Layout,以Java来说,历经了Servlet、JSP、TagLib以及JSF的变迁,当然其他的第三方的东西就更多的,但是就是没有一个成为事实标准,Struts勉强算一个强者,因为普及度最高,但是依然不能解决UI的表现力和交互性问题。我想这也是为什么现在AJAX以及RIA喧嚣尘上,但是无论是以JS为基础的AJAX还是RIA(以Flex和JavaXF为代表)的方案都不能解决全部的问题,无论是AJAX还是RIA,在交互性上都有不错的表现,特别是RIA,能够做出很酷很炫的界面,而以JS为基础的UI库也是不胜枚举,就是没有出现强者,各自分据一小块开发者。
这个问题应该是已经被问了无数次,但是迄今没有出来很好的方案,在最近的两年内都不太可能出现什么转机,唉。。。
更新:
下午看infoq刚好看到一个针对这个问题的访谈,访谈对象都是一些典型阵营的人,很有意思,看完的感受就是:各自力挺自家的方案。不管是否出于商业利益,这个访谈的结果只能更加证明web的UI端的混乱不会结束。也许不同的方案确实要应用到不同的场景,以内容为主的网站更加倾向于原来的HTML为主的方案,对交互性要求稍高的可能用AJAX,对交互性和表现力要求最高的就用RIA。
Chrome浏览器面世一天市场份额就占到了1%,由此可见google的影响力。我当然也是在第一时间就装上了使用,总体的感觉还是不错的,特别是它的这个名字和我的英文名发音差不多(Cherami),不过依然有一些问题:
另外,Chrome可以导出IE的很多内容,最需要注意的是可以导出IE里面保存的表单密码,我想这个应该算IE的一个安全漏洞吧,最起码IE不会提供API去导出密码,所以google在这一点上涉嫌反向工程
帮别人做apache+Tomcat的集群,另外只能对外开放SSL端口,所以用OpenSSL做了SSL的配置,然后我想看看他们的Access.log,但是修改配置后无效,后来发现是httpd-ssl.conf中的配置会覆盖httpd.conf中的配置,查了下apache的手册,发现原来虚拟主机的配置会覆盖系统的配置,而SSL的配置就是利用虚拟主机配置的,问题解决。
PS:apache2.2新增了一个很好的特点,就是SetEnvIf,可以设计Access.log中只纪录某些类型的访问,对于我们而言,主要关注的就是动态的内容,静态的内容不仅多,而且我们一般都不太关注,所以这样配置下就可以只纪录.do的请求:
SetEnvIf Request_URI "\.do" is_action
CustomLog logs/access.log common env=is_action
Apache2.2新增加了几个module,和tomcat集成更加的简单了:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyRequests Off
ProxyPass / balancer://myCluster/
<Proxy balancer://myCluster/>
BalancerMember ajp://localhost:10009 route=tomcat1
BalancerMember ajp://localhost:20009 route=tomcat2
</Proxy>
呵呵,发现在很多情况下IE不显示网页的内容,如果查看源代码会发现页面的内容很多,目前发现的两个情况(使用的是IE6):
感兴趣的可以试试:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title />
<link href="/stylesheet.css" rel="stylesheet" type="text/css" />
<script language="javascript" src="/js/common.js" />
</head>
<body>
xxxxx
</body>
</html>
上面的两种情况在FF下不会有问题
在经历了两天的加班后,今天早上终于把演示做完了,没有出现大的问题,而我们也就可以喘息一天了,所以利用这个时间看看有什么新的技术动态没有,上JR上看了下,没有什么太吸引人的新闻和文章,去JavaEye看了下,发现JavaEye改版了(可能有半年没有去过了),然后发现我原来在JavaEye的注册用户没有了,就又注册了个,还好我的万能ID(cherami)没有被人用,注册后的短信给了我一个惊喜:
增加RSS自动博客导入功能
呵呵,没有犹豫,马上导入,不过这个同步需要时间,到目前位置还没有任何反应,不过光从这个设想看,就值得夸奖一下JavaEye的开放精神,现在有太多的人都有自己的独立域名的Blog,这个功能的推出无疑可以增加JavaEye的凝聚力。
2007年3月29日更新:
确认同步功能正常工作,不过有个担心就是,那个里面的评论和这里的评论分离了,不过好像有点吹毛求疵了。
另外就是这里的更新了,那边的应该不会更新吧?
过几天看看JavaEye上的这个日志的内容就应该知道了。
© 2024 解惑
本主题由Anders Noren提供 — 向上 ↑