- PR -

データベースの値をチェックボックスで使用する方法

投稿者投稿内容
まろにえ
会議室デビュー日: 2007/06/11
投稿数: 12
お住まい・勤務地: 東京
投稿日時: 2007-06-13 11:29
お世話になります。

Strutsでデータベースから値を取りだし、チェックボックスやリストボックスのvalueに埋め込みたいと思っております。
以下の情報からソースを書いてみました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30108&forum=12&6

しかし、コンパイルできず、エラーになってしまいます。
他の投稿を見て、hiddenなども試してみましたがうまく動きません。

何か解決はございますでしょうか。
よろしくお願い致します。
-----------------------------------------------------------
jsp

<html:select property="maker" multiple="true" >
 <logic:iterate id="data" name="TestForm" scope="request" >
  <html:option value="<%= data.getmkr(); %>">
   <bean:write name="data" property="mkr"/>
  </html:option>
 </logic:iterate>
</html:select>
※TestFormのプロパティには"mkr"しかありません。
-------------------------------------------------
エラー
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
JSPファイル: /test.jsp の中の20行目でエラーが発生しました
生成されたサーブレットのエラーです:
Syntax error on token ";", delete this token


[ メッセージ編集済み 編集者: まろにえ 編集日時 2007-06-13 11:30 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-06-13 12:05
親切なエラーメッセージが既に出ています。
Syntax error on token ";", delete this token

ヤフー翻訳で翻訳してみました。
引用:

商品券のシンタックスエラー「;」、この商品券を削除してください



tokenが商品券と訳されていますが、構文の最小単位を意味します。
提示されているソースに1箇所だけ[;]がありますよね。
まろにえ
会議室デビュー日: 2007/06/11
投稿数: 12
お住まい・勤務地: 東京
投稿日時: 2007-06-13 12:45
説明が足りず、申しわけありません。
";" も削除も試したんですが、やはりコンパイルはできませんでした。
参考にした情報でも";"はついていたので、そのままにしてました。

--------------------------------------------------------------------
エラー

org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
JSPファイル: /test.jsp の中の20行目でエラーが発生しました
生成されたサーブレットのエラーです:
The method getMkr() is undefined for the type Object



[ メッセージ編集済み 編集者: まろにえ 編集日時 2007-06-13 12:47 ]
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2007-06-13 14:06
引用:

まろにえさんの書き込み (2007-06-13 12:45) より:
説明が足りず、申しわけありません。
";" も削除も試したんですが、やはりコンパイルはできませんでした。
参考にした情報でも";"はついていたので、そのままにしてました。


;は不要です。その参考にした情報が間違っています。
Syntax error on token ";", delete this tokenと出ていたでしょう。
その証拠に;を削除したら状況が変化したはずです。
引用:

--------------------------------------------------------------------
エラー

org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
JSPファイル: /test.jsp の中の20行目でエラーが発生しました
生成されたサーブレットのエラーです:
The method getMkr() is undefined for the type Object


かつのり様も仰っていますが
親切なエラーメッセージが既に出ています。
The method getMkr() is undefined for the type Object
メソッドgetMkr()はObjectクラスで未定義だと言っています。

もうちょっと言うと
<%= data.getmkr() %>
のdataはキャストされていないのでObject型です。
そのために上記のエラーが出ます。

ところで
  <html:option value="<%= data.getmkr(); %>">
   <bean:write name="data" property="mkr"/>
  </html:option>
でやろうとしていること、
実は<html:option>タグ1行で可能です。

http://www.techscore.com/tech/ApacheJakarta/Struts/7.html
を参考にしてやってみてください。
まろにえ
会議室デビュー日: 2007/06/11
投稿数: 12
お住まい・勤務地: 東京
投稿日時: 2007-06-13 17:15
ご回答ありがとうございます。

教えて頂いた情報を元に試してみます。
まろにえ
会議室デビュー日: 2007/06/11
投稿数: 12
お住まい・勤務地: 東京
投稿日時: 2007-06-15 17:02
スクリプトレットや、教えて頂いたhtml:optionsで試してみましたが、
いまだエラーに悩まされております。
beanにプロパティはあるのにゲッターメソッドがありませんと言われてしまいます。
ゲッターメソッドが抜けているわけでも、重複しているわけでもないのに現象回避できまえん。
何か解決策はございますでしょうか。
ちなみにhtml:optionsにiterateのような繰り返し処理の機能があると認識しているのですが、あってますでしょうか。
質問ばかりで申し訳ございません。よろしくお願い致します。
------------------------------------------------------------------
jsp

<html:select property="maker">
<html:options name="TestForm" property="mkr" labelName="TestForm" labelProperty="mkr" />
</html:select>
※labelは省略可能とのことですが、とりあえず書いときました。
------------------------------------------------------------------
エラー
org.apache.jasper.JasperException: TestForm という名前のbeanのプロパティ mkr に対するゲッターメソッドがありません
公太郎
会議室デビュー日: 2003/09/19
投稿数: 15
投稿日時: 2007-06-15 17:52
引用:
  <html:option value="<%= data.getmkr(); %>">
   <bean:write name="data" property="mkr"/>
  </html:option>



このコードが実際のものならば、そのエラーが出力されると思います。
ここは自己解決してほしいところだと思います。。。応援してます!
まろにえ
会議室デビュー日: 2007/06/11
投稿数: 12
お住まい・勤務地: 東京
投稿日時: 2007-06-25 19:20
公太郎さんの励ましから早10日…
ついに自己解決しました。ずっと泣きそうでした(><)..

なんかデキてみると、すごいあっけないコードです。
たった3行のためにどれだけの時間を費やしたことか

助言をくださった皆様ありがとうございました。
今後ともよろしくお願い致します。
-----------------------------------------------------------
コード
<html:select property="maker" multiple="true">
<html:options collection="TestForm" property="mkr"/>
</html:select>

スキルアップ/キャリアアップ(JOB@IT)