- PR -

JSF ui:tableColumnにおけるヘッダータイトルの改行について

1
投稿者投稿内容
いとたけ
会議室デビュー日: 2007/08/17
投稿数: 3
投稿日時: 2007-08-17 17:46
NetBeans5.5.1+VisualWebPackでJSFの表を作成しております。
表の列ヘッダーを改行表示させたいのですが方法がわかりません。
文字列中に
を挿入(タイ
トル)しても改行せず、プログラム中からColumn1.setHeaderText("タイ\nトル");としてもうまくいきませんでした。

方法をご存知の方がいらしたらご教授願います。

以下、JSPファイルの抜粋です。(以下の"タイトル"を"タイ"と"トル"の2行で表示するイメージです。)
<ui:table augmentTitle="false" binding="#{Sample.Table1}" id="Table1">
<ui:tableRowGroup binding="#{Sample.Group1}" id="Group1" rows="10" sourceData="#{SampleDataProvider}" sourceVar="currentRow">
<ui:tableColumn binding="#{Sample.Column1}" headerText="タイトル" id="Column1">
<ui:staticText binding="#{Sample.Label1}" id="Label1" text="#{currentRow.value['column1']}"/>
</ui:tableColumn>
</ui:tableRowGroup>
</ui:table>
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-08-17 18:26
最終的に出力されるHTMLをイメージしてみては?
BRタグを書き出さないと改行されないのではないでしょうか。
いとたけ
会議室デビュー日: 2007/08/17
投稿数: 3
投稿日時: 2007-08-20 09:00
"タイ<BR>トル"のようにBRタグを挿入することも考えましたが
JSFにおいてどうすればBRタグを挿入できるのかがわかりません。

BRタグを挿入する方法をお教えいただけないでしょうか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-08-20 10:22
引用:

いとたけさんの書き込み (2007-08-20 09:00) より:
"タイ<BR>トル"のようにBRタグを挿入することも考えましたが
JSFにおいてどうすればBRタグを挿入できるのかがわかりません。



やってみたけどうまく動かなかったと言っていますか?
予想した挙動と、実際の挙動はどう違ったのですか?
あなたが本当にわからないことを詳細かつ具体的に質問してみてください。

試行錯誤でいろいろなさったのだとは思いますが、
総括して「わかりませんでした」ではいけませんよ。
BBSを見ている側からすれば、同じように何があったのか掘り直さないといけなくなります。

状況がよくわかりませんから憶測で言いますが、
HTMLのタグがエスケープされて出力されるのでしょうか?
タグライブラリの公式ドキュメントを確認して
どのような属性があるか確認してみてください。
この手のタグライブラリでは通常はエスケープする/しないのスイッチがあります。

ざっと検索してみたのですが…。このtableってタグ、何者ですか?
Strutsならtableタグあるようだけど、tableColumnとかありませんし。
JSFのタグライブラリですか?どうにも情報がひっかからないですが…
公式ドキュメントにはそれらしいものが見当たりません。
http://java.sun.com/javaee/javaserverfaces/1.1/docs/tlddocs/h/tld-summary.html
いとたけ
会議室デビュー日: 2007/08/17
投稿数: 3
投稿日時: 2007-08-20 10:41
私もescape属性により可能であることは知っていたのですが、ui:tableColumnにescape属性が無いので途方にくれておりました。
ただ、以下の方法で解決できました。
(<f:facet name="header"></f:facet>を定義するとheaderText属性をオーバーライドしてくれるようです。)

<ui:table augmentTitle="false" binding="#{Sample.Table1}" id="Table1">
 <ui:tableRowGroup binding="#{Sample.Group1}" id="Group1" rows="10" sourceData="#{SampleDataProvider}" sourceVar="currentRow">
  <ui:tableColumn binding="#{Sample.Column1}" headerText="タイトル" id="Column1">
<f:facet name="header">
<ui:staticText binding="#{Sample.Header1}" id="Header1" escape="false" text="タイ&lt;BR&gt;トル" />
</f:facet>
   <ui:staticText binding="#{Sample.Label1}" id="Label1" text="#{currentRow.value['column1']}"/>
  </ui:tableColumn>
 </ui:tableRowGroup>
</ui:table>

お騒がせしました。
1

スキルアップ/キャリアアップ(JOB@IT)