Java JSF1.2自定义组件-来自支持Bean的主体内容

Java JSF1.2自定义组件-来自支持Bean的主体内容,java,jsf,jakarta-ee,custom-component,Java,Jsf,Jakarta Ee,Custom Component,我正在使用JSF1.2开发一个自定义组件。我的标记类扩展了UIComponentELTag,并具有ValueExpression类型的变量。例如,这些值是从标记的相应属性设置的(使用setProperties函数) <sr:show name="#{backingBean.name}" ...> #{backingBean.mainContent}</sr:show> 如果标记的主体不包含绑定值,则此代码可以正常工作。我想检查主体是否具有绑定值,然后从bean中设置值

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

<sr:show name="#{backingBean.name}" ...> #{backingBean.mainContent}</sr:show>
如果标记的主体不包含绑定值,则此代码可以正常工作。我想检查主体是否具有绑定值,然后从bean中设置值


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

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

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

或者简单地说:

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

如果用户希望在没有bean的情况下直接提供值,是否建议将大量内容作为标记属性的一部分?(例如,text=mainContent,其中mainContent可能包含大量内容或xml或其他内容)自定义标记应该同时支持绑定值和直接值。我只是自己学习这些东西-对不起。根据您对格式化的逻辑程度,您可以使用facelets合成组件来实现这一点。此外,您还可以将表示逻辑拆分为一个标记,并让它为结果设置一个变量,然后使用其他元素进行格式化我允许在标记体中输入主要内容。我还提供了一个属性文本,它可以接受一个ValueExpression。通过这种方式,用户可以在标记体中输入格式化的硬编码文本,也可以从backingbean中提供text属性的值。我决定采用这个解决办法。希望其他人觉得这些信息有用。
<sr:show bean="#{backingBean} />