2

我正在使用 JSF 1.2 开发一个自定义组件。我的标签类扩展UIComponentELTag并具有类型变量ValueExpression。这些值是从标签的相应属性(使用setProperties函数)中设置的,例如

<sr:show name="#{backingBean.name}" ...> #{backingBean.mainContent}</sr:show>

当我尝试将标签的 bodyContent 作为绑定值时,我被卡住了。这就是我的进展:

public int doAfterBody() throws JspException{
    if(bodyContent!=null) {
        String body = bodyContent.getString();
        FacesContext context = FacesContext.getCurrentInstance();
        UIComponent component = super.findComponent(context);
        MyComp myComp= (MyComp) component;
        myComp.setMain(body);
    }
    bodyContent.clearBody();
    return SKIP_BODY;
}

如果标记的主体不包含绑定值,则此代码可以正常工作。我想检查主体是否具有绑定值,然后从 bean 设置值。

在 JSF 1.1 中,我使用isValueReference(body). 我如何在 JSF 1.2 中实现这一点?我在任何地方都找不到任何将正文内容作为绑定值的示例。

4

1 回答 1

1

为什么不简单地添加另一个变量,例如“内容”并将其绑定到您要呈现的正文?

<sr:show name="#{backingBean.name}" text="#{backingBean.mainContent}" />

或者简单地说:

<sr:show bean="#{backingBean} />

并渲染整个地段。

于 2009-03-21T12:01:15.680 回答