我正在使用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中实现呢?我在任何地方都找不到任何将正文内容作为绑定值的示例。

最佳答案

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

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


或者简单地:

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


并渲染全部。

关于java - JSF 1.2定制组件-来自Bean的主体内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/668862/

10-10 09:49
查看更多