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

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

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

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

Seasar2

Seasar2はJ2EE/Java EEでの大規模な開発を効率良く行なうためのフレームワークです。 必要な設定ファイルを従来のものと比べて少なくし、依存性を分離して記述しています。 そのため、生産性の高いプログラム開発が可能です。

Q&A

1回答

3727閲覧

フレームワーク使用時のDBからの値表示方法について

anna10

総合スコア24

Java

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

Seasar2

Seasar2はJ2EE/Java EEでの大規模な開発を効率良く行なうためのフレームワークです。 必要な設定ファイルを従来のものと比べて少なくし、依存性を分離して記述しています。 そのため、生産性の高いプログラム開発が可能です。

0グッド

0クリップ

投稿2015/05/04 05:18

フレームワークにおけるDBの値の表示についての質問です。

環境は、
Windows7
eclipice3.6
Java1.6
Tomcat7.0
XAMPP1.8.1
Seasar2(SAStruts、S2Dao)
を使用しています。環境構築などは全て設定済みです。

Doltengプロジェクトにて作成しています。

まずは画面間での値の受け渡しと、DBの値を表示(所謂セレクト処理)させようとしているところです。

以下が入力画面と出力画面のjspとなります

index.jsp

lang

1<head> 2<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 3<title>入力画面</title> 4</head> 5<body bgcolor="#EE82EE"> 6<h1>初めてのフレームワーク</h1> 7<div align="center"><html:errors/></div> 8<s:form method="POST"> 9<div align="center">パイロットの名前 10 <html:text property="pilotname" /></div> 11 12 <table style="margin-top:5px;margin-left:500px"> 13 <tr> 14 <td rowspan="2"><b>所属</b></td> 15 <td><html:radio property="ms" value="1" />ネオ・ジオン</td> 16 <td><html:radio property="ms" value="2" />連邦</td> 17 <td><html:radio property="ms" value="3" />ビスト財団</td> 18 </tr> 19 </table> 20 <br> 21 <div align="center"><s:submit property="echo" value="ポチっとな" /></div> 22 </s:form> 23</body> 24</html> 25

echo.jsp

lang

1 pageEncoding="UTF-8"%> 2 <%@ page import="gundam.form.*"%> 3 <%@ page import="gundam.entity.*" %> 4<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5<html> 6<head> 7<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8<title>出力画面</title> 9</head> 10<body bgcolor="#98FB98"> 11パイロット認証しました。ようこそ${f:h(pilotname) }さん! 12<br> 13選択出来る機体は以下です。張り切って出撃しましょう! 14<br> 15 16<div id="prefItems"> 17 <span id="id">${f:h(name) }</span> 18 19 <br/> 20</div> 21</body> 22</html>

jspに対応している、ActionクラスとFormクラスです。

Actionクラス

lang

1 2import gundam.dao.GundamDao; 3import gundam.entity.Gundam; 4import gundam.form.EchoForm; 5 6import javax.annotation.Resource; 7 8import org.seasar.framework.container.SingletonS2Container; 9import org.seasar.struts.annotation.ActionForm; 10import org.seasar.struts.annotation.Execute; 11 12/** 13 * 動的webプロジェクトでいうservlet 14 * 「Action」で終わる必要がある。命名時に。 15 * @author 16 * 17 */ 18public class IndexAction { 19 20 @Resource 21 @ActionForm 22 protected EchoForm echoForm; 23 24 private Gundam[] prefItems; 25 26 // 入力画面のアクション 27 @Execute(validator = false) 28 public String index() { 29 30 return "index.jsp"; 31 } 32 33 // 出力画面のアクション 34 @Execute(validator=true,input="index.jsp") 35 public String echo(){ 36 37 return "echo.jsp"; 38 } 39 40 // DBから値を受け取るメソッド 41 public String initialize(){ 42 43 // DAOクラスのコンポーネント?をゲット。正直わけ分からん 44 GundamDao dao = SingletonS2Container.getComponent(GundamDao.class); 45 46 /** 47 * Daoクラスのセレクトメソッドを呼ぶ 48 * これは何とな~く分かる 49 */ 50 prefItems = dao.selectAll(); 51 52 return "echo.jsp"; 53 } 54} 55

Formクラス

lang

1 2import org.seasar.struts.annotation.Required; 3 4/** 5 * JabaBeanのようなものらしい 6 * 最後は「Form」で終わる必要あり 7 * @author 8 * 9 */ 10public class EchoForm { 11 12 @Required 13 public String pilotname; 14 15 public String ms; 16 17 18 public String getMs() { 19 return ms; 20 } 21 22 public void setMs(String ms) { 23 this.ms = ms; 24 } 25 26 public String getPilotname() { 27 return pilotname; 28 } 29 30 public void setPilotname(String pilotname) { 31 this.pilotname = pilotname; 32 } 33 34 35 36}

ここままで画面間の値の受け渡しは成功しました。なので次はDBに格納してある値を表示させたいのです。

eclipceでMySQLのテーブルは確認出来ています。
以下にスクリーンショットを載せます。

![イメージ説明]WIDTH:600

右側のビュワーでjdbc.diconから、作成したテーブルが確認出来ます。

![イメージ説明]WIDTH:600

テーブルの中身です。

index.jspにて、ネオ・ジオンを選んだ場合は1・2が、連邦を選んだ場合は3・4が、ビスト財団を選んだ場合は5・6を表示させたいので、Daoクラスとentityクラスを自動生成しました。

Daoクラス

lang

1 2import gundam.entity.Gundam; 3 4import org.seasar.dao.annotation.tiger.Arguments; 5import org.seasar.dao.annotation.tiger.Query; 6import org.seasar.dao.annotation.tiger.S2Dao; 7 8/** 9 * 簡略化されたDaoとの事だが・・・・ 10 * 今は実感出来ず 11 * @author 12 * 13 */ 14@S2Dao(bean=Gundam.class) 15public interface GundamDao { 16 17 @Query("ORDER BY id") 18 public Gundam[] selectAll(); 19 20 @Arguments("id") 21 public Gundam selectById(Integer id); 22 23 public int insert(Gundam gundam); 24 25 public int update(Gundam gundam); 26 27 public int delete(Gundam gundam); 28 29}>

当初はecho.jspにて、スクリプトレットを用いて、

lang

1 pageEncoding="UTF-8"%> 2 <%@ page import="gundam.form.*"%> 3 <%@ page import="gundam.entity.*" %> 4<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5<html> 6<head> 7<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8<title>出力画面</title> 9</head> 10<body bgcolor="#98FB98"> 11パイロット認証しました。ようこそ${f:h(pilotname) }さん! 12<br> 13選択出来る機体は以下です。張り切って出撃しましょう! 14<br> 15<!-- ここからDBの値を表示させたい --> 16<%GundamEntity gundam = new GundamEntity();%> 17 <%=gundam.getMs() %> 18 <br/> 19</div> 20</body> 21</html>> 22コード

としましたが、nullと表示されたので違いました。
そもそも今までjspでDBの値を表示させる時は、セレクト処理でリストに積めたものを順番に表示させる、という手法(動的webプロジェクト作成では)だったので、同じような事をする必要があるのか?というところで手詰まりとなってしまいました。ネットでも調べているのですが、有用な情報を検索出来ていないというのが現状です。

長大になってしまいましたが、「フレームワークでのライジオボタン選択時に、それに紐付いているDBの値の表示方法」をどなたか教えて頂けないでしょうか。どうかよろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ライジオボタンはラジオボタンでしょうか?
ラジオボタンにIDを持たせて、
それをサービスクラスでSelectByIdでDBから取得して表示することはできませんか?

投稿2015/05/07 09:04

k499778

総合スコア599

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

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

k499778

2015/05/10 01:09

回答した人への礼儀としてコメントくらいは返しましょう。 放置はあまりにも質問しといて無責任すぎると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問