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

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

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

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

Java EE

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

Q&A

0回答

1736閲覧

dataTableでフィルターをかけたレコードを入力欄に反映させたい。

suzu25

総合スコア0

JSF

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

Java EE

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

0グッド

0クリップ

投稿2021/08/03 10:48

編集2021/08/04 10:37

解決したいこと

いつもお世話になっております。
NetBeansを使い、PrimeFaceで検索機能があるデータテーブルを作成しました。numberカラムにcommandLinkをつけて、レコードを取得するメソッドを付与してます。
また同じページ内に入力欄を設けてcommandLinkで取得した値を表示し編集できるようにしてます。
詰まっている事
検索処理を実行し、テーブル内に表示されたリンクを押すと値がnullになってしまい、入力欄に反映されません。
※検索する前(初期画面)では値の受け渡しが上手くいき、入力欄に表示されます.

怪しいのが
検索ボタンの
onkeyup="PF('customersTable').filter()"
クリアボタンの
onclick="PF('customersTable').clearFilters()"
この処理が行われた時にnullになってしまっているのではないかと思います。
試しにクリアのonclick="PF('customersTable').clearFilters()" を消して、入力欄だけをクリアする様にすると、値の受け渡しができました。
そのあとどうすればよいかわかりません。。。

また、質問の内容以外にコードの書き方や記述の仕方に修正内容などありましたらご指摘頂けると幸いです。
よろしくお願いいたします。
参考サイト
https://www.primefaces.org/showcase/ui/data/datatable/filter.xhtml?jfwid=f4b2b
参考書
https://k-webs.jp/JavaEE/

update.xhtml

html

1 <h:form id="form"> 2 <p:dataTable id="dataTable" var="data" 3 value="#{bb.all}" 4 widgetVar="customersTable" emptyMessage="見つかりませんでした"> 5 6 <f:facet name="header"> 7 <div class="p-d-flex p-ai-center p-jc-between"> 8 <p:inputText id="globalFilter" onkeyup="PF('customersTable').filter()" style="width:10rem" placeholder="Enter keyword" /> 9 </div> 10 11 <p:commandButton value="クリア" update=":form:createField" 12 action="#{bb.clear}" 13 onclick="PF('customersTable').clearFilters()" icon="pi pi-times"> 14 </p:commandButton> 15 16 </f:facet> 17 18 <p:column id="edit" headerText="number" filterBy="#{data.number}" 19 filterMatchMode="contains" filterStyle="display:none;" > 20 <p:commandLink actionListener="#{bb.edit(data)}" 21 process="@this" update=":form:createField"> 22 <h:outputText value="#{data.number}" /> 23 </p:commandLink> 24 </p:column> 25 26 27 <p:column headerText="name" filterBy="#{data.name}" 28 filterMatchMode="contains" filterStyle="display:none;"> 29 <h:outputText value="#{data.name}" /> 30 </p:column> 31 32 33 <p:column headerText="mail" filterBy="#{data.mail}" 34 filterMatchMode="contains" filterStyle="display:none;"> 35 <h:outputText value="#{data.mail}" /> 36 </p:column> 37 38 </p:dataTable> 39 40 <p:panelGrid columns="8" id="createField"> 41 <p:outputLabel value="name:" /> 42 <p:inputText id="code" value="#{bb.number}"/> 43 44 <p:outputLabel value="名称:" /> 45 <p:inputText id="codename" value="#{bb.name}"/> 46 47 <p:outputLabel value="サブコード:" /> 48 <p:inputText id="subcode" value="#{bb.mail}"/> 49 50 </p:panelGrid> 51 52 <h:messages style="font-size:1rem;" /> 53 54 <div class="operation" style="text-align: center; margin-top: 2rem;"> 55 <p:commandButton value="更新" 56 action="#{bb.update()}" 57 onclick="return confirm('更新してよろしいですか?')" 58 style="margin-right: 1.5rem;" ajax="false" update="@all" 59 icon="pi pi-replay"> 60 </p:commandButton> 61 62 <p:commandButton value="削除" 63 action="#{bb.delete()}" 64 onclick="return confirm('削除してよろしいですか?')" ajax="false" 65 style="margin-right: 1.5rem;" icon="pi pi-trash" update="@all"> 66 </p:commandButton> 67 68 </div> 69 </h:form>

Bb.java

java

1import java.io.Serializable; 2import java.util.List; 3import java.util.logging.Logger; 4import javax.ejb.EJB; 5import javax.inject.Inject; 6import javax.inject.Named; 7import javax.validation.constraints.*; 8import org.springframework.context.annotation.Scope; 9 10@Named 11@Scope("session") 12public class Bb implements Serializable { 13 14 @NotNull 15 private Integer number; 16 @NotBlank 17 private String name; 18 @Email 19 private String mail; 20 21 @EJB 22 MeiboDb db; 23 @Inject 24 transient Logger log; 25 26 public String edit(Meibo meibo) { // 編集データのセット 27 number = meibo.getNumber(); 28 name = meibo.getName(); 29 mail = meibo.getMail(); 30 return null; 31 } 32 33 public void update() { // 更新 34 Meibo meibo = new Meibo(number, name, mail); 35 db.update(meibo); 36 clear(); 37 } 38 39 public String delete(Meibo meibo) { // 削除 40 db.delete(meibo); 41 return null; 42 } 43 public List<Meibo> getAll() { // 全データをListにいれて返す 44 return db.getAll(); 45 } 46 47 public String clear() { 48 number = null; 49 name = null; 50 mail = null; 51 return null; 52 }

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問