0

私は昨夜この質問をしましたが、コーディングを完了する方法を尋ねなかったのはちょっとばかげていました. SQL データベースからのデータが入力された JSP にドロップダウン ボックスがあります。選択したデータを最終的な表示ページに誘導しようとしていますが、これでも問題が発生しています。

プログラムを実行すると、リスト データベースのすべてのデータがページに読み込まれるか、わかりにくいエラーが表示されます。

私の現在のコーディングは次のとおりです。

豆:

package com.login.read;

public class ReadBean {

protected int id;
protected String title;
protected String author;
protected String text;


public int getId(){
    return id;
}

public void setId(int newID){
    id = newID;
}

public String getTitle(){
    return title;
}

public void setTitle(String newTitle){
    title = newTitle;
}

public String getAuthor(){
        return author;
    }

public void setAuthor(String newAuthor){
    author = newAuthor;
}

public String getText(){       
        return text;
    } 


public void setText(String newText){
    text = newText;
}

}

コントローラー:

package com.login.read;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet (urlPatterns={"/com/defaultValidate/ReadController"})
public class ReadController extends HttpServlet {




protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String address;
    List<ReadBean> myList = new ArrayList<ReadBean>();

    if(request.getParameter("ReadConfirm") != null){  
        try {
            Connection connect = ConnectionManager.getConnection();
            String SQL = "SELECT * FROM prayers ORDER BY prayerTitle DESC";
            PreparedStatement ps = connect.prepareStatement(SQL);

            ResultSet rs = ps.executeQuery();

            while(rs.next()){
                ReadBean reader = new ReadBean();
                reader.setTitle(rs.getString("prayerTitle"));
                reader.setAuthor(rs.getString("author"));
                reader.setText(rs.getString("text"));
                myList.add(reader);   
            }

            request.getSession().setAttribute("ref", myList);


            rs.close();
            ps.close();
            connect.close();
        } catch (Exception e) {
        }

        address = "ReadConfirm.jsp";
    } else if(request.getParameter("ReadView") != null){ 

        address = "ReadView.jsp";
    } else{
        address = null;
    }

    RequestDispatcher dispatcher = request.getRequestDispatcher(address);
    dispatcher.forward(request, response);

}
}

そして、ドロップダウン ボックスを選択したマテリアルにリンクする JSP ページ:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

%@include file="MenuHeader.jsp"%>
</div>
    <div id="mainBorder"> </div>
        <div id="mainBody">
            <table id="mainTable">
                <tr>
                    <td id="sidebar">
                        <h2>Options</h2>  
                            <ul>

            </ul>
        </td>
        <td id="mainContent">
                        <h2 id="contentHeader">Select a prayer</h2>

                        <form action="ReadController">
                            <table border="1" width="1" cellspacing="5" cellpadding="5">
                                <thead>
                                    <tr>
                                        <th></th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td><select name="prayer_id">

                                                <c:forEach var="view" items="${ref}">
                            <h2>${view.title}</h2>

                            <h3>${view.author}</h3>

                            <p>${view.text}</p>
                        </c:forEach>

                                            </select>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><input type="submit" name="ReadView"     value="View">    </td>
                                    </tr>
                                </tbody>
                            </table>

                        </form>
    <td id="imageBar">

            </td>   
        </table>
    <%@ include file="../menuHeaderAndFooter/MenuFooter.jsp" %>

そして最終閲覧ページ:

 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
%@include file="MenuHeader.jsp"%>
</div>
    <div id="mainBorder"> </div>
        <div id="mainBody">
            <table id="mainTable">
                <tr>
                    <td id="sidebar">
                        <h2>Options</h2>  
                            <ul>

            </ul>
        </td>
        <td id="mainContent">


                        <c:forEach var="view" items="${res}">
                            <h2>${view.title}</h2>

                            <h3>${view.author}</h3>

                            <p>${view.text}</p>
                        </c:forEach>




                        <form action="../Read.jsp">
                            <p>Click on the return button to return to the main menu</p>
                            <input type="submit" name="return" value="Return">
                        </form>

    <td id="imageBar">

            </td>   
        </table>
    <%@ include file="../menuHeaderAndFooter/MenuFooter.jsp" %>

いつものように、この点に関するすべての支援は非常に役に立ちます。私は jsp とサーブレットの世界では比較的初心者です。

このシーケンスの続きについて参照が必要な場合は、jsp コンボ ボックスでデータを動的に表示することに関して投稿した前の質問を参照してください。

お時間をいただき、ありがとうございました。

4

1 に答える 1

0

上記のコードを読むと、 loopで使用されている変数 "var"にセッション属性を保存した場所を尋ねることができます。c:foreach

于 2013-01-31T06:02:47.870 に答える