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

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

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

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

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

Q&A

解決済

1回答

1680閲覧

JavaEEでユーザ入力によるデータテーブルの検索をするには

anonyrabbit

総合スコア78

JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

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

0グッド

0クリップ

投稿2016/12/29 16:41

primefacesでデータベースの内容をデータテーブルにして表示しているところまで来ているのですが、そのデータテーブルの中身を検索する機能の実装ができなくて困っています。

Java

1 public List<OldCoupleInformation> filterTable(String inputAddressOne) { 2 return em.createQuery("SELECT c FROM OldCoupleInformation c WHERE c.addressOne = :inputAddressOne ").getResultList(); 3 4 } 5

上記のメソッドを

Java

1 public List<OldCoupleInformation> findByAddress(String search) { 2 return db.filterTable(search); 3 } 4

のようにして使おうと思っています。引数のString searchはユーザ入力で、xhtml側は以下のようになっています。

xhtml

1 <p:inputText id="globalFilter" value="#{cb.search}" style="width:150px" placeholder="Enter keyword"/> 2 <h:commandButton action="#{cb.findByAddress(cb.search)}" class="Button"/> 3 4 5 <p:dataTable id="examplej" class="table table-striped table-bordered dt-responsive nowrap table-hover" 6 var="info" value="#{bb.coupleList}" rows="10" paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" 7 rowsPerPageTemplate="5,10,15" paginator="true" emptyMessage="お探しの地域では見つかりませんでした"> 8 <f:facet name="header"> 9 <p:outputPanel> 10 <h:outputText value="Search all fields:" /> 11 </p:outputPanel> 12 13 </f:facet> 14 15 <p:column> 16 <p:graphicImage value="#{bb.pic}" > 17 <f:param name="id" value="#{info.id}"/> 18 </p:graphicImage> 19 </p:column> 20 21 <p:column> 22 <h:outputText value="#{info.addressOne}" /> 23 </p:column> 24 25 26 <p:column> 27 <h:outputText value="#{info.firstName}" />さん 28 </p:column> 29 30 31 32 <p:column> 33 <h:commandLink action="#{bb.detail(info)}"> 34 詳細へ 35 </h:commandLink> 36 </p:column> 37 38 39 </p:dataTable> 40

しかしこのボタンを押しても何も起こらず困っています。おそらくListをデータテーブルへと再表示するのがうまくいっていないのだと思いますがどうすればいいかお分かりになるかた回答の方よろしくお願いいたします。

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

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

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

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

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

BlueMoon

2016/12/30 01:10

<h:form>タグは付いていますか? JSFとBackingBeanの紐づけができていないとエラーも何も表示されない場合が有ります。package定義やscopeアノテーションを見直した方が良いかも知れません。
anonyrabbit

2016/12/30 15:11

formタグはついています。package定義やscopeアノテーションも確認しました。Query文は合っていますでしょうか?
guest

回答1

0

ベストアンサー

「ボタンを押して何も起こらない」という状況から、BackingBean(cb.findByAddress)の呼び出しが成功していないように思えます。まずはその点を解決する方向で調査されてはどうでしょうか。以下は思い付く手法です。

  • メソッドの適所にログ出力を入れる
  • クリーンコンパイルしてみる
  • アンデプロイ、デプロイをやり直してみる

Queryが正しいか確認するにはDataBase情報、Table構成の情報が必要ですが、開示頂いたとしても机上での確認は難しいです。多分、Queryが間違っていれば画面、またはログにエラー情報が出力されると思います。ご参考までに。

<h:form>タグで間違えないでしょうか。<form>タグだと動作しないかも知れません。

投稿2016/12/30 23:51

編集2016/12/30 23:54
BlueMoon

総合スコア1339

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

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

anonyrabbit

2017/01/01 10:57

関連する質問を投稿しましたのでもしよろしければご回答いただけると助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問