关于JSF中绑定Component Instance to a Bean Property

很久没发博客了,今天开始,继续发表一些学习心得。

这几天在读JEE的tutorial(原谅我有时候想不起中文意思),读到Binding a Component Instance to a Bean Property。有些心得,记下来以备以后翻阅。

绑定component和managed bean有三种。

一,就是把component的值和managed bean的property绑定

这个很好理解

<h:outputText value="#{cashierBean.shipDate}">
    <f:convertDateTime type="date" dateStyle="full" />
</h:outputText>
private Date shipDate;

public Date getShipDate() {
    return this.shipDate;
}
public void setShipDate(Date shipDate) {
    this.shipDate = shipDate;
}

就是把bean里的property和component的值绑定,我就不多说了。

二。Binding a Component Value to an Implicit Object

在page里面

<h:outputFormat title="thanks"
                value="#{bundle.ThankYouParam}">
    <f:param value="#{sessionScope.name}"/>
</h:outputFormat>

在message properties 文件里

ThankYouParam=Thank you, {0}, for purchasing your books from us.

从session里读出名字放进去。

三,把component 的instance和bean 的property绑定

这个解释我读了很久才明白。

其实就是说如果一些component的需要后台处理过才能render,这个时候我们可以绑定instance给property,在bean里去给这个instance的attribute设置需要的值。

比如:

<h:selectBooleanCheckbox id="fanClub"
                         rendered="false"
                         binding="#{cashierBean.specialOffer}" />
<h:outputLabel for="fanClub"
               rendered="false"
               binding="#{cashierBean.specialOfferText}"
               value="#{bundle.DukeFanClub}"/>
</h:outputLabel>

这个checkbox是不可见的,rendered是false,但是我们需要一些判断来渲染这个checkbox。下面就是bean里面的,

创建了component 的instance,而不是值,如果满足一定条件,就渲染这两个component

    UIOutput specialOfferText = null;
    UISelectBoolean specialOffer = null;
    UIOutput thankYou = null;

        if ((cart.getTotal() > 100.00) && !specialOffer.isRendered()) {
            specialOfferText.setRendered(true);
            specialOffer.setRendered(true);

            return null;
        } else if (specialOffer.isRendered() && !thankYou.isRendered()) {
            thankYou.setRendered(true);

            return null;
        } 

希望上面这些解释能对大家有些帮助。

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值