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

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

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

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

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

2回答

1700閲覧

Java streamのfilterで値が返ってこない

K-actus

総合スコア22

Java

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

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2021/04/13 08:25

編集2021/04/13 08:35

こんにちは。
Javaについて初学者なので拙いところもあると思いますが、よろしくお願いします。

実現したいこと

テーブルの各行にボタンがあり、行ごとに違うパラメータをもっていて、HogeList内のそのパラメータと一致する値を持ったデータを次のページで表示する処理を作成しています。
具体的には、POST処理でのパラメーターを引数にして、その引数と一致するデータをListからfilterで探索してmodelとしてHogePageに返したいです。
しかし、書き方がおかしいのか1つもデータが返ってきません。
どこがおかしいのでしょうか。

回答よろしくお願いします。

###コード
HTML

HTML

1<table> 2<tr th:each="item: ${FugaList}"> 3 <td th:text="${item.~}"></td> 4<!-- 中略 --> 5 <td> 6 <form action="/hogePage" method="post"> 7 <button type="submit" name="hogeParam" th:value="${item.hogeParam}"></button> 8 </form> 9 </td> 10 11</tr> 12</table>

Controller

Java

1@PostMapping("/hogePage") 2 public String getHogeList(Model model,@RequestParam("hogeParam")String hogeParam){ 3 List<HogeList> HogeList = hogeRepository.findAll() 4 .stream() 5 .filter(a -> a.getHogeParam() == HogeParam) //HogeListのHogeParamカラムから引数と一致するデータを探索 6 .collect(Collectors.toList()); //List化 7         //stream以下をコメントアウトすれば全件表示される 8 9 model.addAttribute("HogeList", HogeList); 10 11 return "hogePage"; 12 13 }

Repository

Java

1public interface HogeRepository extends JpaRepository<HogeList, Integer> { 2}

hogePage

HTML

1<table> 2 <tr th:each="item: ${HogeList}" > 3 <td th:text="${item.~}"></td> 4 <!-- 中略 --> 5 </tr> 6</table>

補足情報

Eclipse 2020 Java FullEdition
AmazonCorretto jdk15.0.2_7
SpringBoot 2.4.3
MySQL 8.0.23
Windows10 Pro 1909

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

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

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

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

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

guest

回答2

0

文字列の比較は、equalsを使ってください

投稿2021/04/13 09:02

momon-ga

総合スコア4826

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

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

0

ベストアンサー

java

1.filter(a -> a.getHogeParam() == HogeParam)

↑これ、HogeParamのところでコンパイルエラーになりませんか?
たぶん、hogeParamの間違いですよね?

↓これで改善しませんか?

java

1.filter(a -> a.getHogeParam().equals(hogeParam))

投稿2021/04/13 09:00

gpsoft

総合スコア1323

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

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

K-actus

2021/04/14 04:57

解決しました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問