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

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

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

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

1回答

6122閲覧

ボタンから画面遷移をせずにテーブルのデータ削除がしたいです。

akuram

総合スコア8

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

0クリップ

投稿2018/06/12 07:52

編集2018/06/13 07:48

前提・実現したいこと

ボタンから画面遷移をせずにテーブルのデータ削除がしたいです。

発生している問題・エラーメッセージ

プログラム自体にエラーは出ていません。実行もできます。
しかし、実際に削除ボタンを押すと以下の表示が出ます。

このサイトにアクセスできません
localhost で接続が拒否されました。
localhost 55000 basket delete を Google で検索してください

該当のソースコード

spring:BasketDeleteCustomerController.java

1package jp.co.sss.shop.controller.basket; 2 3import org.springframework.beans.factory.annotation.Autowired; 4import org.springframework.stereotype.Controller; 5import org.springframework.web.bind.annotation.RequestMapping; 6import org.springframework.web.bind.annotation.RequestMethod; 7 8import jp.co.sss.shop.form.BasketForm; 9import jp.co.sss.shop.repository.OrderItemRepository; 10 11@Controller 12public class BasketDeleteCustomerController { 13 14 @Autowired 15 OrderItemRepository repository; 16 17 @RequestMapping(path = "/basket/delete", method = RequestMethod.POST) 18 private String deleteComplete(BasketForm form) { 19 repository.delete(form.getId()); 20 return "/basket/list/basket_list"; 21 } 22}

html:basket_list.html

1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org" 3 xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" 4 layout:decorator="common/layout_5block"> 5<head></head> 6<body class="user shopping_basket"> 7 <form method="post" action="/basket/delete"> 8 <input type="hidden" name="id" value="1" /> 9 <input type="submit" value="削除" class="delete" /> 10 </form> 11 12</body> 13</html>

java:BasketForm.java

1package jp.co.sss.shop.form; 2public class BasketForm { 3 4 private Integer id; 5 private Integer itemId[]; 6 7 private Integer orderNum[]; 8 9 public Integer getId() { 10 return id; 11 } 12 13 public void setId(Integer id) { 14 this.id = id; 15 } 16 17 public Integer[] getItemId() { 18 return itemId; 19 } 20 21 public void setItemId(Integer[] itemId) { 22 this.itemId = itemId; 23 } 24 25 public Integer[] getOrderNum() { 26 return orderNum; 27 } 28 29 public void setOrderNum(Integer[] orderNum) { 30 this.orderNum = orderNum; 31 } 32} 33

java:OrderItemRepository.java

1package jp.co.sss.shop.repository; 2 3import org.springframework.data.domain.Page; 4import org.springframework.data.domain.Pageable; 5import org.springframework.data.jpa.repository.JpaRepository; 6import org.springframework.data.jpa.repository.Query; 7import org.springframework.data.repository.query.Param; 8import org.springframework.stereotype.Repository; 9 10import jp.co.sss.shop.entity.OrderItem; 11 12@Repository 13public interface OrderItemRepository extends JpaRepository<OrderItem, Integer> { 14 15 @Query("SELECT e FROM OrderItem e INNER JOIN e.order.user d WHERE e.order.user.id = :id") 16 public Page<OrderItem> findByIdOrderByInsertDate(@Param("id") Integer id, Pageable pageable); 17}

試したこと

returnが問題だと思い、いくつかのパターンを試しましたがだめでした。
リポジトリーが取得できていないそうなので、いろいろしましたがだめでした。

補足情報(FW/ツールのバージョンなど)

エクリプスにて開発。

追記
BasketFormを追記しました。
OrderItemRepositoryを追記しました。

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

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

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

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

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

euledge

2018/06/12 09:08

削除以外のことはできているのでしょうか? 検索とか insert,updateなどです。
akuram

2018/06/12 13:40

遷移ができていないため、できておりません。データベースには直接打ち込んであるので削除対象は用意されています。
shinobu_osaka

2018/06/12 14:25

なぜかURLがローカルになるって話ですか?ではなくタイトルにあるようにページ遷移を阻止したいのであれば、onsubmit="なんか処理();return false;"とかでJSで処理しないとformを普通にsubmitすると必ずページ遷移が発生するのでは?
akuram

2018/06/13 00:28 編集

現状はローカルホストから接続、それでいて遷移無しで表示したいのです。 構文から間違っているということでしょうか。
euledge

2018/06/13 02:34

「遷移せずに」という意味が曖昧なんだと思います。遷移というのはコントローラに行く事なのか、別画面を開くことなのか?何を意味しているのでしょう。またやりたいことは削除だと思いますが、削除後(遷移せずに)何を表示したいのでしょうか?
akuram

2018/06/13 04:04

コントローラにいきます。要件定義に画面遷移なしとだけ書かれています。おそらく別画面は開きません。削除後は表示しているテーブル群から削除対象データが減っていればOKです。
akuram

2018/06/13 07:46

回答ありがとうございます。ですが、違う要因のようです。リポジトリーが取得できていなかったようです。まだ解決には至っていません。
guest

回答1

0

まずは、下記のように BasketFormの前に@ModelAttributeを付けましょう。

java

1@RequestMapping(path = "/basket/delete", method = RequestMethod.POST) 2private String deleteComplete(@ModelAttribute BasketForm form) { 3 repository.delete(form.getId()); 4 return "/basket/list/basket_list"; 5}

投稿2018/06/13 02:46

euledge

総合スコア2404

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問