プロが教えるわが家の防犯対策術!

JSP+Bean+Servletで作っています。

BeanでDB接続、データを取得して、
それをJSPで一覧表示として表示させたいのですが、
どのタグを使えばいいのでしょうか。
また、その場合、タグは、Servletとか
Beanでかく必要がありますか。


たとえば、今、DBに30個データがある場合、
JSPでそれをTABLEタグを使って
一覧表示させますよね。

でもJSP側では、<TR><TD></TD></TR>の
データをいくつセットできるか、っていう
数がきまってますよね。てことは、
ServletとかBeanでHTMLのタグをうって
表示させないといけないんですか???


やりたいことは、BeanとかServletで
タグは書かずに、JSPでパラメータだけ
受け取って、その数だけデータを
表示させたいんです。
(JSPだけでタグをかいて、パラメータで
わたってきたデータを表示させたい。)

そういうことってできますか??
・・・説明がうまく出来てないかとは思うのですが
よろしくお願いします。

A 回答 (5件)

どもども^^



例えば、JSPが受け取ったデータ(Stringの配列やら、HashTableやら)を
ループを使って表示させればいいのでは??

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<table>
<%
for(int i=0; i < 結果.length; i++){
%>
<tr>
<td><%= 結果[i] %></td>
</tr>
<%
}
%>
</table>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

こんな感じでHTMLのタグをJAVAのforループの中にほりこんで
やれば、出来ると思うけど、だめ??

がんばってください。
わかりにくい説明だったら、ごめんね。

この回答への補足

mkimさん、早い回答ありがとうございます。

日々、分からないことだらけで追われております。。

そうですよねー。なんか勘違いしてたのかも。
JSPの中でまわしたらいいですよね。
ちょっとやってみます。

また質問するかもしれませんがよろしくお願いします。

補足日時:2001/08/17 10:22
    • good
    • 0
この回答へのお礼

すみません。。また質問です。

<table>
<%
for(int p=0; p < wk.getData_cnt(); p++){
%>

<tr>
<td><%= wk.getList() %>out.print("www");</td>
</tr>

<%
}
%>
</table>

こういう感じでJSPは書いてます。
wk.getData_cnt()はちゃんと件数がとれてました。

Beanで読んだデータをArg_Dataという配列に
入れてSetメソッドでセットしています。

そしてJSPでGetしようと思ったんですが、
[Ljava.lang.String;@6fb836out.print("www");[Ljava.lang.String;@6fb836out.print("www");[Ljava.lang.String;@6fb836out.print("www");



こんな感じで表示されます。
配列の要素数をセットしていないので
こうなるんだとおもうんですが、
Forでまわすところ、配列の要素数
はどうやってセットしたらいいんでしょうか?
wk.getList()このなかのかっこにカウンタ変数
とかいれるとエラーになっちゃうんですが、、、

基本的なことを聞いてすみません。

お礼日時:2001/08/17 12:03

どもども^^



>もう一つ質問なんですが、このTABLEでの
>一覧表示、ずらーーーーーと
>でますよね。
>これを固定にする方法ってあります?
>例えばスクロールバーがつくとか、
>あとは。。。。思い付きませんが。。。

テキストエリアのvalueに取得したデータを突っ込むと
一応、大きさ指定して横にスクロールバーを付ける事は、
できます。
しかし、それも、見た目はあまりかっこよくないかと。。。
どっちも、カッコよくないですね^^;;
もう、それくらいしか思い浮かびません。

#私のJBuilderは、すぐにフリーズする。。。メモリ増設もしたのに。。(苦笑)
#適当なエディタでごりごり書く方が、似合ってるのかな。。。

この回答への補足

アプレットで同じことをやったときは、
テキストエリアをEnabled==Falseにして
表示用にしてたんですが、
Enabled==Falseの概念ないですよね?
サーブレット。。(あるのかな。)

なので、<SELECT><OPTION>タグを
使おうかと思っています。
ここから、データを抽出できるとかに
しようかと思います。

ありがとうございます。

JBuilder確かに重いです。
適当なエディタ。。。ちなみに
mkimさんは何をお使いなんでしょうか。

Javaを書いている人が使ってるソフトで
最もポピュラーなのはなんなんでしょうかね。

補足日時:2001/08/17 14:51
    • good
    • 0

今日はあまり時間がないので、少しだけ(笑)



public String[] getList(int i) {
return list[i];
}

エラーおきるの当然です。
戻り値がString配列なのに、list[i]はStringです。
ただしくは

public String getList(int i) {
return list[i];
}

です。
try{}catch{}で「i」が配列のサイズ以上だったら、ブランクを送るなり(不明)というStringを返すなりしたら、デバッグが少し楽になるかも。

で、余談ですが前の質問のお礼にかかれていたことについて。
私は仕事でServlet-JSP-Beanのコーディングをしています。
勉強というか、書いてるうちに身についたという感じです。
私ももっともっと精進しますので、お互いにがんばりましょう!

この回答への補足

ほんと、すみませーん。(>_<;)
ここ、何日かご迷惑かけっぱなし、ですね。
感謝しております。。

>エラーおきるの当然です。
>戻り値がString配列なのに、list[i]はStringです。

ですねー。
String[]は配列で、
String[n]ていうのはStringですね。
初歩的なことでつまづいちゃって
お恥ずかしいです。

>私は仕事でServlet-JSP-Beanのコーディングを
>しています。
>勉強というか、書いてるうちに身についたという
>感じです。

そうなのですか。
今までVBしか知らなくて、VBだと
けっこうサンプルプログラムってありますが
Java、、、特にServlet-JSP-Bean
については、あまり出回ってないので
頭をかかえています。
MLとかで質問するとヒンシュクものの
質問に答えていただいて
本当にありがとうございました!!!

私もがんばります。

補足日時:2001/08/17 14:10
    • good
    • 0

どもども^^



public String[] getList(int i) {
return list[i];
}
これは、無しでやってみますか!
Stringの方のgetList()は、残しておいてね。

ちょっと原始的かもしれないので、自分で変更してくれてもOKです!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<%
String[] aaa = wk.getList(); //Stringの配列をaaaにセット
%>
<table>
<%
for(int p=0; p < wk.getData_cnt(); p++){
%>
<tr>
<td><%= aaa[p] %>out.print("www");</td>
</tr>
<%
}
%>
</table>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

さっきの変なの(Ljava.lang.String;@6fb836out )が、
表示されてたのは、String型の配列を表示しようとして、
あんなものが表示されていたんですね!


#これで、いけるかと。。。
だめだったら、また質問してください。

この回答への補足

多分、私がやってるwk.getList()[p]ていうのと
結果一緒ですよね?

wk.getListでの戻り値が配列自体でしたね。
すみませんでした。

ありがとうございました!!!!!
大変感謝しております。

補足日時:2001/08/17 14:08
    • good
    • 0

はい。

2回目のどもどもです^^

>wk.getData_cnt()はちゃんと件数がとれてました。
おめでとうございます。件数がとれていれば、だいぶ成功に
近づいてきましたね。

>wk.getList()このなかのかっこにカウンタ変数
>とかいれるとエラーになっちゃうんですが、、、
getList()のメソッドは、元々getList(int i)と言う
使い方が、できるのでしょうか??

最近、JAVAから離れ気味で、忘れてきた(笑)
Ljava.lang.String;@6fb836out ←こう言う風になるのって
型がおかしいからやったっけな。。
もしそうなら、(String)などのようにキャストしてね。自信無し。

あと、out.print("www"); これの部分なんやけど、
そこは、HTML部分なので、wwwって普通に書くだけで
OKかと。。。。
out.print("www")このように表示させたい場合は、そのままね!

#力不足ですいません^^;;

この回答への補足

回答ありがとうございます。

>getList()のメソッドは、元々getList(int i)と言う
>使い方が、できるのでしょうか??

JBuilderで作っているんですが、
Beanでプロパティの追加の設定をすると、
勝手にデフォルトでSetとGetメソッドが
作られるんです。
今回はlist[]という配列をプロパティとして追加
したんですけど、そうすると、以下のような
メソッドがデフォルトでできます。

public String[] getList() {
return list;
}
public void setList(String[] list) {
this.list = list;
}

このGetメソッドを使ってJSPはパラメータ
(今回はlist[]という配列です。)を
取得したいのです。mkimさんが書かれたように

public String[] getList(int i) {
return list[i];
}
というふうにおくと、コーディングのエラーが
でてしまいます。

何か、外してますでしょうか???

補足日時:2001/08/17 13:00
    • good
    • 0
この回答へのお礼

何度もすみません。
できました。
BeanのSet&Getメソッドはそのままで
JSPで
wk.getList()[p]というふうに
したらできました。

wk.getList()はただ単に配列自体を
渡してるのでJSPで要素をセットしないといけない
んですよね。
すみません。

もう一つ質問なんですが、このTABLEでの
一覧表示、ずらーーーーーと
でますよね。
これを固定にする方法ってあります?
例えばスクロールバーがつくとか、
あとは。。。。思い付きませんが。。。

なんかアイディア、ありましたら
教えていただきたいのですが。。

かなり長くて、かっこわるいんです。
一覧。。。

お礼日時:2001/08/17 13:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!