1

私は jsp と JavaEE に不慣れで、次のことをしようとしています: データベース検索を行い、ユーザーのすべてのアカウントを見つけます。次に、それらをリストしたいと思います。asp.net では、gridview が非常に便利なツールです。グリッドビューのすべての行にチェックボックスやボタンなどを追加し、これらの行に特定のイベントを追加できます。Javaでこれを行う方法は何ですか? 拡張機能をインストールする必要がありますか? これが私のコードです:

try {
        connect();
        PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
        "SELECT * FROM Accounts where username = ?");
        checkDB.setString(1,username);
        ResultSet rs =null;
        rs=(ResultSet) checkDB.executeQuery();

        if(rs.next())
        {

            //LIST THE RESULTS AS A GRIDVIEW HERE
            rs.close();
            return true;
        }
        else
        {
            rs.close();
            System.out.println("awwwwww");
            return false;
        }
    } catch (Exception e) {
        System.out.println("cannot connect");
        e.printStackTrace();
        return false;
    }

これが私が欲しいもののスクリーンショットです:

ここに画像の説明を入力

4

3 に答える 3

1

サーブレットは、表示するデータをセッションまたはリクエスト オブジェクトに保存した後、JSP をディスパッチして結果を表示できます。

タグ ライブラリdisplaytagを使用すると、同様の外観を得ることができます。たとえば、以下のコードはhttp://nciml.mathteamhosting.com/generated/topStudents.htmを生成するために使用されました

    <%-- At top of page --%>
    <%@taglib prefix="display" uri="http://displaytag.sf.net" %>

   <display:table id="row" name="rankedList" >
    <display:column property="rank" title="Rank"  />
    <display:column property="firstName" title="First" />
    <display:column property="lastName" title="Last"  />
    <display:column property="mySchool" title="School" />
    <display:column property="c1" title="C1" />
    <display:column property="c2" title="C2" />
    <display:column property="c3" title="C3" />
    <display:column property="c4" title="C4" />
    <display:column property="c5" title="C5" />
    <display:column property="cTotal" title="Total Points" />
</display:table>

上記のコードでは、rankedList は、リストされたプロパティを持つ POJO である RankedStudent の ArrayList です。displayTag で使用するすべてのプロパティに対して、パブリックのゲッターとセッターが必要です。

于 2013-07-02T12:06:37.833 に答える
0

html の table タグを使用して、スクリーンショットで指定した結果を表示できます。

<table> <tr><th>heading</th><th>heading</th><th></th><th></th><th></th><th></th><th></th></tr><tr>

if(rs.next())
    {
          <tr>
                <td>data</td><td></td><td></td><td></td><td></td><td></td><td></td>
          </tr>



    }

rs.close();

于 2013-07-02T12:26:22.027 に答える
0
    ResultSet rs = null;
    ArrayList aListOfBeans;
    try {
        connect();
        PreparedStatement checkDB = (PreparedStatement) con
                .prepareStatement("SELECT * FROM Accounts where username = ?");
        checkDB.setString(1, username);
        rs = (ResultSet) checkDB.executeQuery();

        while (rs.next()) {
            if (aListOfBeans == null)
                aListOfBeans = new ArrayList();
            // LIST THE RESULTS AS A GRIDVIEW HERE
            String crn = rs.getString("CRN");
            String courseCode = rs.getString("COURSE_CODE");
            // etc etc etc (for all the columns)

            MyAccountBean aBean = new MyAccountBean();
            aBean.setCRN(crn);
            aBean.setCourseCode(courseCode);
            // etc etc etc

            aListOfBeans.add(aBean);
        }

        if (aListOfBeans == null) {
            System.out.println("awwwwww");
        }
    } catch (Exception e) {
        System.out.println("cannot connect");
        e.printStackTrace();
        return false;
    } finally {
        if (rs != null)
            rs.close();
        // closing rs, con, checkDB in finally block *ensures* they get
        // closed even if Exception is caught
        // i didn't write for the others, but you get the idea
    }
    return aListOfBeans;

上記のコードは、JSP ページではなく、Java サーブレットに配置するのが理想的です。JSP はデータを表示するだけで、DB 接続を行ったり、DB からデータを取得したりしないでください。

後で JSP で、セッションから ArrayList aListOfBeans を取得し、Bean で getter メソッドを使用して ( aBean.getCRN())、データを取得します。ArrayList で for ループを使用して、テーブルを動的に生成します。

于 2013-07-02T12:32:13.720 に答える