[weld] 开始进入weld之界

wuhaixing 2010-04-15
Weld是JSR-299实现的代表(RI),作为 Seam 项目的子项目进行管理和开发。你可以从http://seamframework.org/Download下载到weld最新的社区版本。这个页面中也包含关于Weld源码及如何构建的指导。

Weld带有完整的SPI,以供 Java EE containers(比如JBoss AS 和 GlassFish)将其作为内置的CDI实现。Weld也能运行在servlet engines中(比如 Tomcat 和 Jetty),甚至是 Java SE 环境中。

Weld也有很多例子,是学习 CDI 的好资料。
wuhaixing 2010-04-15
先来介绍Weld中提供的两个入门级程序。
weld-numberguess,是一个web程序 (war),只包含non-transactional managed beans. 他可以在很多服务器上运行,包括JBoss AS, GlassFish, Apache Tomcat, Jetty, Google App Engine, 以及任何与Java EE 6 兼容的 container.
weld-translator,是一个企业级程序 (ear),有session beans. 这个程序只能在JBoss AS 6.0, Glassfish 3.0 或者与 Java EE 6 兼容的container.

他们的web框架用的都是JSF2.0,所以你可以在weld发布版中的 examples/jsf 目录下发现这两个例子。
wuhaixing 2010-04-15
准备工作

要看演示效果,你得先把这些东西找齐:
  • Weld的最新发布版本,里面带有演示程序
  • Ant 1.7.0,构建和部署工具
  • 运行环境(注意最低版本要求)
  •             JBoss AS 6.0.0,
  •             GlassFish 3.0,
  •             Apache Tomcat 6.0.x (war example only),
  •             Jetty 6.1.x (war example only)
  • Maven 2.x,可以让你在嵌入式的servlet 服务器上运行演示程序。


在接下来的几章里,你将见到如何使用ant命令来调用演示程序自带的build脚本编译、打包和部署程序。

如果你装了 Maven(强烈推荐),你可以用mvn命令来编译和打包独立的构件(war或ear)。
lonvea 2010-04-16
我说说我的感受
1)weld好用,很简单,生命周期很容易控制。但是拦截器有bug。
2)JSF2.0即glassfish V3中自带的,有bug,生命周期中页面跳转有问题。。在JSF中,无论使用serlvet的跳转,还是navigationHandler,即使跳转了,但是Faces请求周期仍在进行,如在:@PostContrust中使用了跳转,跳转到一个error页面,但是原页面上EL绑定的bean会继续被调用,调用之后,才跳转到error。这个问题,让我很难理解。。。无论JSF生命周期如何控制,就不能做到让用户手动结束FacesContext的response???


昨天做了一个datamodel,一个dataTable中使用dataModel做遍历对象,这个dataModel在渲染一个table时竟然被调用了11次。。。。。。。。。。。。。。。。

Global site tag (gtag.js) - Google Analytics