
こんにちわ。
表題の件ですが、下のようなbeanファイルとjspファイルの構成です。
--AAA.JSP--
<jsp:useBean id="E" scope="page" class="myPack.Engine" />
・・・・途中をかなり略・・・・
<td><%= E.getIntSuryo() %></td> <========(1)
Engineクラス(bean側)
package myPack;
public class Engine {
int intSuryo[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
}
public int[] getIntSuryo() {
return intSuryo;
}
--------------ここまで-------------
ここで、(1)の箇所の記述の仕方がわかりません。
インデックスを指定して、1~10までを表にしようと思っています。
getIntSuryo()の括弧内にindexを入れてみましたが、
エラーとなり怒られました。
どなたかご存知の方、教えてください。
No.2ベストアンサー
- 回答日時:
とりあえず、
<td><jsp:getProperty name="E" property="intSuryo[i]" />個</td>
は
<td><%=E.getIntSuryo()[i]%>個</td>
これでいいと思います。
property="intSuryo[i]"
Engineクラスにはこのようなプロパティは存在しないのでエラーが出ると思いますよ。
この回答への補足
お礼に書いてしまったので、補足に書かせていただきます。
結論から書きますと、E.getIntSuryo()[i]という書き方のままで値を取得できるようになりました。
ただ、JavaBeansのgetプロパティのソース部分を、一度消しもう一度作った後に、動くようになりました。
それしか行っていないので、正直、原因はわかりませんでした。
ありがとうございました。
akane_210さん、たびたびありがとうございます。
<td><%=E.getIntSuryo()[i]%>個</td>
ふむふむ。こういう書き方をするのですね。
書き方もなかなかわからず困っていました。
試してみましたが、エラーには変化がありませんでした。
>property="intSuryo[i]"
>Engineクラスにはこのようなプロパティは存在しないのでエラーが出ると思いますよ。
うーむ。この辺りもわかっていない(勘違い)のかもしれませんが、
public int[] getIntSuryo() {
return intSuryo;
}
この一節で、それを定義しているものだと思っていました。
同じ書き方でint型のプロパティを、JSPでgetできたもので。
配列型のプロパティの宣言(?)というのは、
Engineクラスにどのように書けばよいのでしょうか?
No.1
- 回答日時:
Engineクラスの表記のしかたがおかしい気がしますが。
。いまいち何がしたいのかわかりませんが、
どのようなエラー(結果)がでてるのかを示していただけると、他の方も回答がしやすいと思います。
とりあえず、Engineクラスにデフォルトコンストラクターが無いのは問題だとおもいますよ。
<jsp:useBean id="E" scope="page" class="myPack.Engine" />
でインスタンスが作成できませんので。。
akane_210さん、回答ありがとうございます。
JSPの練習の一環として、JavaBeansの配列変数に入っている計算結果をJSPから呼び出すということをしています。
それをテーブルタグ内に表示させてみようとなったわけです。
>Engineクラスにデフォルトコンストラクターが無いのは問題だとおもいますよ。
JavaBeansでは、引数の無いコンストラクタが必要であるということですよね?
私の誤解の可能性が高いですが、
コンストラクタをまったく定義しない場合、
自動的に引数の無いコンストラクタが作られているという認識を持っていたため、
コンストラクタらしきものは書いておりません。
というか引数の無いコンストラクタと言われても・・・(^^;)という感じでした。
その後、少し変更を加えました。
<%for (int i = 0; i < E.getIntSuryo().length; i++) {%>
<tr>
<td><jsp:getProperty name="E" property="intSuryo[i]" />個</td>
</tr>
<%} %>
このようにループ処理に変えてみました。
現在は、次のエラーが出ています。
E' has no get method for 'intSuryo[i]'
やはり、Engineクラスできちんとコンストラクタを作っていないからでしょうか?
エラーを読む限りではメソッドが無いと言われていますが、
なんのメソッドが必要なのかわかりません。。。
もしお気づきの点がありましたら、再び教えていただければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
範囲外の数値を代入したらエラ...
-
C#にて別クラスの関数を使いたい
-
C#のクラスライブラリでメッセ...
-
「タイプ初期化子が例外をスロ...
-
中学のクラス数
-
【sendkeysメソッドが動かずに...
-
インスタンス参照でアクセスで...
-
ヒグマを撃退
-
private static という変数の修飾
-
VBScriptからストアドプロシー...
-
String.containsの反対機能はあ...
-
どこからも呼ばれていない無意...
-
eclipse-Tomcatでのデバッグに...
-
サーブレットコンテキストの意...
-
javascriptのイベント処理につ...
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
ラジオボタンの選択判定
-
エクセルVBAで、条件に一致する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
C#にて別クラスの関数を使いたい
-
クラス間でのデータ参照
-
c++,ある関数のクラスから別の...
-
Java リフレクションについて
-
import と extends について
-
C# インターフェイスの実装
-
構造 他のクラスの構造体を別...
-
範囲外の数値を代入したらエラ...
-
C#でほかのファイルにある自作...
-
C#のクラスライブラリでメッセ...
-
親クラスから子クラスへアクセス。
-
Tomcatのpropertiesファイルの...
-
java-別クラスの変数の使い方を...
-
C++でfriendクラスにしているの...
-
継承したクラス側のクラス名の取得
-
dynamic_castの必要性
-
ネストしたenumへのリフレクシ...
-
Java
-
ASP Pageの孫継承のPage_Load
おすすめ情報