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

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

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

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

Java

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

Spring

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

Q&A

解決済

1回答

2038閲覧

マスタの内容をセレクトボックスに表示したいのですが。

usako

総合スコア31

JSP

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

Java

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

Spring

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

0グッド

0クリップ

投稿2019/06/28 06:23

前提・実現したいこと

閲覧いただき、ありがとうございます。
Spring,MySQL,JDBCを使ってJAVA,jspの勉強をしている初心者です。
従業員マスタ(addressbook)の一覧表示、参照、更新、登録、削除機能を実装した
プログラムを作成しているのですが、所属の名称を
セレクトボックスにし、所属マスタ(department)の所属名(name)のみを
表示させたいのですが、現状、ハードコピーにあるように、
{cd=1,name=第一システム部}と表示されてしまい、
思い通りに動作しません。
どなたかご教示いただけないでしょうか。
↓更新画面
イメージ説明

※所属マスタは所属コード(cd)と名称(name)しかもっていません。

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

①セレクトボックスには名称(name)のみ表示したい。
②本来、所属コードが'3'(第三システム部)の社員にも
かかわらず、参照画面や更新画面を表示すると、
無条件で先頭のデータ{cd=1,name=第一システム部}が
表示されてしまう。
③リストボックスには所属名を表示したいが、従業員マスタ
(addressbook)の所属情報には対応するコードを設定したい。

該当のソースコード

java

1(Controller.java) 2 private RecordManager recordManager; 3 private DepartmentInfoGet departmentInfoGet; 4 public AddressBookController(RecordManager recordManager,DepartmentInfoGet departmentInfoGet) { 5 this.recordManager = recordManager; 6 this.departmentInfoGet = departmentInfoGet; 7 } 8 @RequestMapping(value = "/start") 9 public String init(AddressBookForm form, Model model) { 10 model.addAttribute("message", INIMSG); 11 return INIT; 12 } 13 @RequestMapping(params = "update") //更新画面表示 14 public String update(@Valid AddressBookForm form, BindingResult result, Model model) { 15 if (result.hasErrors()) { 16 return INIT; 17 } 18 List<Map<String, Object>> departmentList = departmentInfoGet.getDepartmentList(); 19 model.addAttribute("departmentList", departmentList); 20 21 Employee employee = recordManager.selectEmployee(form.getId()); 22 if (employee != null) { 23 form.setName(employee.getName()); 24 form.setPhone(employee.getPhone()); 25 form.setAddress(employee.getAddress()); 26 form.setSex(employee.getSex()); 27 form.setDepartment(employee.getDepartment()); 28 model.addAttribute("message", UPDMSG); 29 return UPDATE; 30 } else { 31 model.addAttribute("message", ERRMSG); 32 return INIT; 33 } 34 } 35 @RequestMapping(params = "reflection") //反映ボタン押下時 36 public String reflection(@Valid AddressBookForm form, BindingResult result, Model model) { 37 if (result.hasErrors()) { 38 return UPDATE; 39 } 40form.getAddress()); 41 Integer rs = recordManager.updateEmployee(form.getId(), form.getName(), form.getPhone(), form.getAddress(), form.getSex(), form.getDepartment()); 42 if (rs == 1) { 43 model.addAttribute("message", UPDMSG2); 44 return INIT; 45 } else { 46 model.addAttribute("message", ERRMSG2); 47 return INIT; 48 } 49 }

java

1(DepartmentInfoGet.java) 2public class DepartmentInfoGet { 3 private JdbcTemplate jdbcTemplate; 4 public DepartmentInfoGet(JdbcTemplate jdbcTemplate) { 5 this.jdbcTemplate = jdbcTemplate; 6 } 7 public List<Map<String, Object>> getDepartmentList() { 8 List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from unit02.department order by cd"); 9 return list; 10 } 11}

jsp

1(update.jsp) 2<body> 3 <form:form modelAttribute="addressBookForm" action="/address/book"> 4 <div class="header"> 5 <span class="titleName">住所録</span> 6 <div class="date"><%=LocalDate.now()%></div> 7 </div> 8 <div class="main"> 9 <div class="message"> 10 <c:out value="${message}" /> 11 <form:errors path="name" /> 12 <form:errors path="phone" /> 13 <form:errors path="address" /> 14 </div> 15 <div> 16 <span class="itemName">従業員番号:</span> 17 <c:out value="${addressBookForm.id}" /> 18 <form:hidden path="id" /> 19 </div> 20 <div> 21 <span class="itemName">所属:</span> 22 <form:select path="department" items="${departmentList}" /> 23 </div> 24 <div> 25 <span class="itemName">名前:</span> 26 <form:input path="name" size="31" /> 27 </div> 28 <div> 29 <span class="itemName">電話番号:</span> 30 <form:input path="phone" size="31" /> 31 </div> 32 <div> 33 <span class="itemName">住所:</span> 34 <form:input path="address" size="31" /> 35 </div> 36 <div> 37 <span class="itemName">性別:</span> 38 <form:radiobutton path="sex" label="男" value="0"/> 39 <form:radiobutton path="sex" label="女" value="1"/> 40 </div> 41 </div> 42 <div class="footer"> 43 <div> 44 <input type="submit" name="reflection" value="反映" /> 45 </div> 46 <div> 47 <input type="submit" name="toInit" value="取消" /> 48 </div> 49 </div> 50 </form:form> 51</body>

試したこと

①DepartmentInfoGet.javaのSELECT文を*ではなく、nameで取得すると、
セレクトボックスの表示が{name=第一システム部}に変わるだけで
正しく表示されないことには変わりがありませんでした。
②どう試していいのかわからず何もできていません。
③どう試していいのかわからず何もできていません。

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

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

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

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

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

m.ts10806

2019/06/28 06:31

Springであえてjspを利用されているのですか?
usako

2019/06/28 06:34

はい・・・ はじめに学習した通信教育がそのような構成でしたので。 もしかしてその組み合わせは不自然なのでしょうか?(そこすら分かっておりません)
guest

回答1

0

ベストアンサー

itemValue、itemLabelを指定してみたらどうでしょうか。

投稿2019/06/28 09:49

momon-ga

総合スコア4820

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

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

usako

2019/07/01 03:46

momon-ga様、コメントありがとうございます。 お陰で様で、やりたいことができるようになりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問