2011-12-22 8 views
3

JSFチームのフロントエンドHTMLを行います。私はしばしば、独自のHTMLをレンダリングするために使用されるJSFタグを実行します。それは多くの場合、SPANだと、通常は問題ではありませんが、たまに我々はこれを持っている:JSFタグでHTMLタグをレンダリングしない

<table> 
<h:panelGroup rendered="[jsf logic]"> 
    <tr><td>#{jsfVariable}</td></tr> 
</h:panelGroup> 
</table> 

このレンダリングされますどの:私はJSFタグのドキュメントを読んきた

<table> 
<span> 
    <tr><td>Hello World.</td></tr> 
</span> 
</table> 

をが、タグそのものをHTML要素としてではなく、子HTMLのみを表示するようにJSFタグに指示する方法の具体的な記述は見つかりません。 「スパンをレンダリングしない」というJSF属性はありますか?または、HTMLとしてレンダリングされないJSFタグがありますが、JSF変数の使用は可能ですか?あなたが与えられた例ではなど HTMLで終わる必要があります<h:panelGroup>属性、などidstyleClassを与える場合

+0

もっと複雑なことをやっているかもしれませんが、どうしても - > ... td> ...あなたがカスタム子どもがいても何もレンダリングされていないコンポーネントは、簡単な回避策(複合コンポーネントやhtmlの単純な再設計)のために多くの作業のように思えます。 –

+0

はい、例を簡略化することに問題があります。 ;)この具体例では、あなたのソリューションが完璧な意味を持つことに同意します。しかし、実際には、私たちのコードは通常、はるかに複雑です。 –

答えて

8

<span>のみが生成され、<h:panelGroup>のみrendered属性を持っているので、何もできなくなりますHTMLに生成されます。

あなたの要件を満たすには、自分の質問の例と同じようにからrendered以外のすべての属性を削除してください。

+0

後見でやや明白に見えます!私は読んだドキュメントのいずれにも言及していませんでした。ありがとう! –

+1

ようこそ。 JSPの代わりにJSPの後継Faceletsを使用している場合は、代替は「」です。 HTML属性がないため、誤って指定することはできません。 – BalusC

+0

これは静的なマークアップにのみ有効です。レンダリングステータスを更新するためにajax経由で ' 'を更新したいのですが?私が見つける唯一の解決策は、テーブル全体または行のセル内のすべてのコンポーネントを更新することです。 Mojarraは 'span 'をテーブルの上にレンダリングして、誤った更新を行います。 " ...は動作しません。 – djmj

関連する問題