プロが教える店舗&オフィスのセキュリティ対策術

以下のようにしてスレッドNoが同じものだけ表示したいと考えております。
servletの「text」という変数にはすべての値が格納されているところまでは確認できました。
それをJSPにて表示したいのですが、どのようにすれば出力されるのかわかりません。
どなたかお教えいただければと思います。
宜しく御願い致します。

---------------------------------------------------------
java
/**
*
*TEXTテーブルからスレッドNoが同じものを返すメソッド
*
*
*/
public ArrayList selecttext(int no)throws SQLException{
ArrayList<Textbeen> list = new ArrayList<Textbeen>();

TextDAO kei =new TextDAO();
Connection db=kei.createConnection();
Statement sttSql=db.createStatement();
ResultSet rs=sttSql.executeQuery("SELECT * FROM TEXT WHERE KB_TH_NO='"+no+"' ");

while(rs.next()){
String name=rs.getString("KB_NAME");
String tino =rs.getString("KB_TITLE_NO");
String title = rs.getString("KB_TITLE");
String mail = rs.getString("KB_MAIL");
String text = rs.getString("KB_TEXT");
String pass = rs.getString("KB_TITLE_PASS");
String date = rs.getString("KB_TIME");
int th_no = rs.getInt("KB_TH_NO");

Textbeen thread = new Textbeen(name, title, tino, mail, text, pass, date, th_no);
//TO(Threadオブジェクト)を、保持するリストに追加
list.add(thread);
}

kei.closeConnection(db);

return list;
}
----------------------------------------------------------
servlet
ArrayList text = new ArrayList();

try{
text = list.selecttext(TH_no);
}
catch(Exception e){
e.getStackTrace();
}
request.setAttribute("test", text);


String nextPage = "/view/user/ThreadTop.jsp";
----------------------------------------------------------

A 回答 (2件)

サーブレット側で、ArrayListクラスのオブジェクト変数textの


インスタンスをsetAttributeメソッドで設定しているので

後は、サーブレット側でJSPへ遷移制御するコーディング追加↓
RequestDispatcher dp = request.getRequestDispatcher(nextPage);
dp.forward(request,response);

その後は、ThreadTop.jsp側でArrayListクラスのオブジェクト変数textの
インスタンスをgetAttributeメソッドで取得して
配列要素分のTextbeenデータを取得表示する。
<html>
<head><title></title></head>
<body>

<%
//オブジェクトインスタンス取得
ArrayList text = request.getAttribute("test");
//要素分ループ
for(int i=0; i<text.size(); i++) {
Textbeen thread = (Textbeen)text.get(i);


//以下省略
}
%>
</body>
</html>
    • good
    • 4

>request.setAttribute("test", text);



とやっているのでServletからJSPへはforwardしているのですよね?
だとすればJSP側で

ArrayList text = (ArrayList)request.getAttribute("test");

で取得できますので
あとは

for (int i = 0; i < text.size(); i++) {
Textbeen thread = (Textbeen)text.get(i);
}

のような感じで取り出せば良いでしょう。
    • good
    • 3

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A