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

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

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

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

Java

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

Spring

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

Q&A

1回答

1498閲覧

jspでボタンを動的に増やす方法

meema

総合スコア0

JSP

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

Java

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

Spring

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

0グッド

1クリップ

投稿2022/02/08 05:58

編集2022/02/15 02:12

現在質問を修正中ですが想定よりかなり時間がかかっています。
申し訳ありませんがもうしばらくお待ちください。

プログラミング初心者です。
データベースにある要素の数だけhtmlのボタンをループで増やすというプログラムを作りたいのですが方法がわからず躓いております。
具体的なプログラムのイメージを記述します。

りんご(紅玉、500円、青森)、みかん(日向夏、300円、宮崎)、バナナ(モンキーバナナ、100円、フィリピン)という情報をデータベースに登録します。
別ページで、登録した果物の名前のみを一覧でボタン表示にします。(りんご・みかん・ばなな)
りんごのボタンを押すとデータベースに登録しておいたリンゴの情報(紅玉、500円、青森)を表示するページに遷移する。
みかんのボタンが押されればみかんの情報、バナナのボタンが押されればバナナの情報を表示します。
このボタンをデータベースにある果物の名前の数だけ増やすという操作を行いたいのですが、
<input type="button" name="btn" value="(果物の名前)" onclick="location:href='○○○○'" />
上記のような形でボタンを設置するとどこにループ要素を組み込めばよいのかがわかりません。
jsp側でボタンの数を操作するという考えがそもそも間違っていて、フレームワーク等を利用するものなのでしょうか。
for文の基本的な使い方は把握しております。

質問が長文になってしまい申し訳ありませんが回答よろしくお願いいたします。

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

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

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

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

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

yambejp

2022/02/08 06:40

jsp側のソースはどうなっていますか?
meema

2022/02/08 08:34

修正依頼いただきありがとうございます。 私の不勉強さゆえにyambejp様の質問の意図がよくわからないため、的外れな返答をしていましたら大変申し訳ないです。 このシステムではサーブレットでDBに登録された果物の情報を取得し、それらをセッションに保存する。 jsp側ではセッションに保存された果物の数だけボタンをループさせて表示するという想定でした。 ですので当初の質問に書いた内容とほぼ同じものではありますが、jsp側に書くコードとしては <input type="button" name="btn" value="$(セッションに保存された果物の名前)" onclick=画面遷移する動作> というものだけを想定していました。
jimbe

2022/02/08 08:42

まずその3つのデータがある場合にどのような **html** になるかを作ってみては如何でしょうか。 そこから、 3 つのデータの部分を 1 つにして for で回るようにしてみる(リンゴのデータが 3 つになったりしますが)、果物のデータ部分を変数(配列?)にする、値をデータベースから取得する…と少しずつ修正しては動かして確認を繰り返していくと、それぞれの段階で理解が深まったり、分からなくなったらその html(JSP) をご提示されれば、日本語で説明するよりも具体的で回答が付き易いと思います。
meema

2022/02/08 09:07

アドバイスいただきありがとうございます。 全くもって仰る通りで最初の段階で諦めかけていた自分が浅はかでした。 どれほど時間がかかって再度新しい情報をお出しできるのかは分かりませんが、ひとまず可能な限りプログラムを書こうと思います。
guest

回答1

0

あくまでボタンもhtml要素のひとつなので、単純に考えればDBから取得してループする中に出力を組み込めばそのループ回数分だけ出力されます。
用途次第ですが、特にidは同ページ内に重複不可なので行番号をつけるなど一意にする必要があります。

投稿2022/02/08 06:56

m.ts10806

総合スコア80850

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

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

meema

2022/02/08 08:36

回答いただきありがとうございます。 ビューとロジックを分けるという考えから、DBから果物の情報を取得して保存する動作と、 画面にボタンを設置する動作を分割して考えていました。 行いたい操作を段階に分けると、 1,DBから果物の情報を一括で取得する。 2,取得した果物の情報をセッションに保存する。 3,果物の名前をセッションから取得する。 4,取得した果物の名前に対応するボタンを設置する。 こうなるかと思います。 当初私はこの4番目の操作だけをjsp側で行うことを考えていましたが、m.ts10806様の教えによると3,4の動作をjsp側にfor文でまとめて繰り返すことで、想定した動作になるということでよろしいでしょうか。
m.ts10806

2022/02/08 09:27

ビューとロジックを分けるというのは賛成ですが、ロジック側で取得したデータは結局ビューで表示処理に組み込む必要があります。 なので、セッションの必要性を感じないのですが…
m.ts10806

2022/02/08 09:28

質問は編集できるので、現状出来てるところまでででもコード提示されたほうが具体的なアドバイスを得やすくなると思います
meema

2022/02/10 01:55

回答いただきありがとうございます。 またお返事が遅れまして申し訳ありません。 この三連休で質問内容の修正をさせていただく予定です。
m.ts10806

2022/02/10 02:26

特にこちらは急いでいませんので、修正できたら教えてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問