こんにちわ。
表題の件ですが、下のような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で質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- バックアップ ファイル履歴を使用してバックアップよりハードディスクドライブに保存した方良いですか? 3 2022/09/29 22:31
- Ruby No route matches [GET] "/posts/5/destroy" 1 2022/03/24 13:00
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
a href="..." とServlet
-
C#にて別クラスの関数を使いたい
-
C#のクラスライブラリでメッセ...
-
関数内の変数に<summary>コメン...
-
[C#] OpenFileDialogによって得...
-
C#でほかのファイルにある自作...
-
構造 他のクラスの構造体を別...
-
c++,ある関数のクラスから別の...
-
クラス間でのデータ参照
-
内部クラスのインスタンスを外...
-
例えば、以下のようなクラスでm...
-
ひとつのファイルにクラスは1つ?
-
Tomcatのpropertiesファイルの...
-
内部クラスのスコープについて。
-
範囲外の数値を代入したらエラ...
-
Java インスタンス作成のイベ...
-
Java
-
無名パッケージからのインポート
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クラス間でのデータ参照
-
関数内の変数に<summary>コメン...
-
c++,ある関数のクラスから別の...
-
範囲外の数値を代入したらエラ...
-
C#にて別クラスの関数を使いたい
-
無名パッケージからのインポート
-
java-別クラスの変数の使い方を...
-
SwingでgetContentPaneのエラー...
-
C++でfriendクラスにしているの...
-
C#でほかのファイルにある自作...
-
Java リフレクションについて
-
Java
-
import と extends について
-
C#のクラスライブラリでメッセ...
-
a href="..." とServlet
-
ひとつのファイルにクラスは1つ?
-
構造 他のクラスの構造体を別...
-
親クラスから子クラスへアクセス。
-
内部クラスのインスタンスを外...
-
visual studioのデザイナ画面で...
おすすめ情報