質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

XHTML

XHTMLは、eXtensible HyperText Markup Languageの略であり、SGMLベースであるHTMLとは違って、有効なXMLドキュメントにもなるHTMLアプリケーションです。XMLベースのツールを用いて生成されるHTMLページのためによく使われるマークアップ言語です。

Q&A

解決済

1回答

10864閲覧

JSFでのリスト表示について教えてください。

syncrock

総合スコア209

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

XHTML

XHTMLは、eXtensible HyperText Markup Languageの略であり、SGMLベースであるHTMLとは違って、有効なXMLドキュメントにもなるHTMLアプリケーションです。XMLベースのツールを用いて生成されるHTMLページのためによく使われるマークアップ言語です。

0グッド

0クリップ

投稿2015/09/15 00:15

編集2015/09/16 04:21

以下のような変数を持っていたとして、それをJSFで表示するにはどうすれば良いでしょうか。

java

1ArrayList<TestMstForm> form

単純にそのまま出すだけならprime facesのdatalistを使うなり、ui:repeatを使うなり、方法はあるかと思いますが。
今回教えて頂きたいことは以下のような場合です。
例えばデータが
日付 曜日
20150901 火
20150902 水
20150903 木
と、このような感じで2015年9月の日付を持っているとします。
それを出力した結果として
日 月 火 水 木 金 土
20150901 20150902 20150903
のような感じで出力したいです。

<tr>タグをrenderedで表示、非表示判定をして一定のタイミングで次行にいこうとしても、 renderedを使うと<tr>タグの終わりをちゃんと判定してもらえないみたいで、 エラーが出てしまいます。 (今回の例であれば日曜のデータであれば<tr>を表示、土曜のデータであれば最後に</tr>を出そうとしていました。Strutsであればこのようなことが出来たので。) そのため、現段階では該当する曜日の列に出力する判断のみなので、<tr>タグの判断が出来ず、1行に1レコードを分を出力してしまいます。

datalistを使っていますが、現在ではこんな感じでロジックを書いています。

java

1<table> 2 <tr> 3 <td></td> 4 <td></td> 5 <td></td> 6 <td></td> 7 <td></td> 8 <td></td> 9 <td></td> 10 </tr> 11 <p:dataList value="#{testAction.form}" var="calendarForm"> 12 <tr> 13 <td><h:outputText value="#{calendarForm.ymd}" rendered="#{calendarForm.youbiCd == '1'}"/></td> 14 <td><h:outputText value="#{calendarForm.ymd}" rendered="#{calendarForm.youbiCd == '2'}"/></td> 15 <td><h:outputText value="#{calendarForm.ymd}" rendered="#{calendarForm.youbiCd == '3'}"/></td> 16 <td><h:outputText value="#{calendarForm.ymd}" rendered="#{calendarForm.youbiCd == '4'}"/></td> 17 <td><h:outputText value="#{calendarForm.ymd}" rendered="#{calendarForm.youbiCd == '5'}"/></td> 18 <td><h:outputText value="#{calendarForm.ymd}" rendered="#{calendarForm.youbiCd == '6'}"/></td> 19 <td><h:outputText value="#{calendarForm.ymd}" rendered="#{calendarForm.youbiCd == '7'}"/></td> 20 </tr> 21 </p:dataList> 22</table>

どなたか、出したい表示内容でのロジックを教えて頂けないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

下記のString配列のリストに変換して表示してみてはどうでしょうか。

Java

1ArrayList<String[]> strList ;

下記はリストのゲッターです。元のリストは出来ている前提で新規リスト作成しています。

Java

1public ArrayList<String[]> getForm(){ 2 strList = new ArrayList(); 3 String item[]= new String[7]; 4 5 for(TestMstForm srcItem:form ){ 6 item[srcItem.youbiCd-1]=srcItem.getYmd(); 7 if(srcItem.youbiCd==7){ 8 strList.add(item); 9 item= new String[7]; 10 } 11 } 12 13 strList.add(item); 14 15 return strList; 16 17 }

ページのコードです。JSFのdataTableを使用しています。

HTML

1<h:dataTable value="#{testAction.form}" var="strList"> 2 <h:column > 3 <f:facet name="header">日</f:facet> 4 <h:outputText value="#{strList[0]}"/> 5 </h:column> 6 7 <h:column > 8 <f:facet name="header">月</f:facet> 9 <h:outputText value="#{strList[1]}"/> 10 </h:column> 11 12 <h:column > 13 <f:facet name="header">火</f:facet> 14 <h:outputText value="#{strList[2]}"/> 15 </h:column> 16 17 <h:column > 18 <f:facet name="header">水</f:facet> 19 <h:outputText value="#{strList[3]}"/> 20 </h:column> 21 22 <h:column > 23 <f:facet name="header">木</f:facet> 24 <h:outputText value="#{strList[4]}"/> 25 </h:column> 26 27 <h:column > 28 <f:facet name="header">金</f:facet> 29 <h:outputText value="#{strList[5]}"/> 30 </h:column> 31 <h:column > 32 <f:facet name="header">土</f:facet> 33 <h:outputText value="#{strList[6]}"/> 34 </h:column> 35 36</h:dataTable>

以上、ご参考までに。

投稿2015/09/16 01:57

BlueMoon

総合スコア1339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syncrock

2015/09/16 02:25

回答ありがとうございます。 やはり、データをテーブルに出したい形に編集したものをリストに詰めるしかないのですかね。。。 そうなると、ちょっと表示がめんどくさくなりそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問