JSF1.2组件 基于DIV+CSS的Tree

开发一个Tree组件.

有如下功能:

1、数据要能够与bean联系起来,因为菜单是动态的从数据库里取出来或动态生成的;

2、要无限级次的;

3、要是DIV+CSS的,不要table的在网上一找,有一个DIV+CSS的tree组件出现了。在 cnlei.iecn.net下来源码一看很清晰。连我这不懂CSS的也看得明白了一大半。决定就对它进行改造。生成JSF的组件。

在开发的过程中有一些要记录的:

1、JSF1.2的组件开发和JSF1.1有的很大的不同。尤其是EL表达式。而且是extends的基类也不同。JSF1.2中的TagLib要继承javax.faces.webapp.UIComponentELTag。

2、TagLib接受的属性只能是ValueExpression类型。如果需要用字符型。需要再进行处理。不象JSF1.1中有方法判断是表达式还是值。

接受表达的值,并给组件赋值:

private ValueExpression value;

  if (value != null)
   component.setValueExpression("value", value);
如果要接受字符串的属性要这样得到字符串的值。

  if (id != null) {
   component.setId(id.getExpressionString());
  }

 

3、如果想把组件在Facelets中应用,要写Renderer。(至少我是这样,不写Renderer在Facelets中就不能应用。但在JSP中可以使用)还要写一个componets.tablib.xml。

在Renderer中得到表达式的值:

ValueExpression valueVe = component.getValueExpression("value");
  if (valueVe != null) {
   Object _object = valueVe.getValue(context.getELContext());

//...
}

4、要在faces-config.xml中配置component 和render-kit.

总之写JSF的组件是很麻烦的事情。如果有其他的选择还是不要自己写。但是写好之后用起却是非常的方便的。

<xy:tree value="#{menuBean.nodes}" title="#{resource.menu_title}"/>

一句话就可以生成一树。很爽吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值