0

データベースからドロップダウン値を取得する jsp があります。ここで私が欲しいのは、すべてのユーザーのデータを取得することです。私が持っているクエリは以下の通りです

SELECT type, SUM(Update_Count) FROM Scope1 where type in ('Updates','Multibases','DAIS','Acds','Legis','LegAll') and Specialist in ('Rakesh') and (RECVD_DATE >='04/01/2012' and RECVD_DATE <='04/30/2012') group by type

ここには、hari と rakesh という 2 人のユーザーがいます。ドロップダウンで [すべて] を選択すると、jsp が以下のクエリを実行するようにします。

 SELECT type, SUM(Update_Count) FROM Scope1 where type in ('Updates','Multibases','DAIS','Acds','Legis','LegAll') and Specialist in ('Rakesh','Hari') and (RECVD_DATE >='04/01/2012' and RECVD_DATE <='04/30/2012') group by type

私が使用するjspは以下の通りです。

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@include file="DBCon.jsp" %>
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta charset="utf-8" />

    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
    <script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" />
    <script>
    $(function() {
        $( "#from" ).datepicker({
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 3,
            onClose: function( selectedDate ) {
                $( "#to" ).datepicker( "option", "minDate", selectedDate );
            }
        });
        $( "#to" ).datepicker({
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 3,
            onClose: function( selectedDate ) {
                $( "#from" ).datepicker( "option", "maxDate", selectedDate );
            }
        });
    });
    </script>

    </head> 
    <body><form name="Reports" method="post" action="DropDown.jsp"><table><tr>

                     <td>From</td><td><input type="text" id="from" name="from"></td></tr>

                     <tr><td>To</td><td><input type="text" id="to" name="to"></td></tr>
                     <tr><td>Select user:</td><td><select name="user" id="user">


            <option value="">Select User</option>
            <%
            try{
                ps=con.prepareStatement("Select Distinct Specialist from Scope1");
                rs=ps.executeQuery();
                while(rs.next()){
              %>
                <option value="<%String user1=rs.getString(1);out.println(user1);%>"><%out.println(user1);%></option>
                <%
            }
            out.println("<select>");
            }
            catch(Exception e)
                                       {
                out.println(e);
            }
            %>

                             </select></td></tr>
                     <tr><td>
        Select Type:</td><td><select name="type" id="type">
            <option value="">Select Type</option>
            <option value="'Updates','Multibases','DAIS','Acds','Legis','LegAll'">All</option>
            <%
            try{
                ps=con.prepareStatement("Select Distinct type from Scope1");
                rs=ps.executeQuery();
                while(rs.next()){
        %>
                <option value="'<%String type1=rs.getString(1).trim();out.print(type1);%>'"><%out.println(type1.trim());%></option>
                <%
            }
            out.println("<Select>");
            }
            catch(Exception e)
                                       {
                out.println(e);
            }
            %>
                            </select></td></tr>
                     <tr><td><input type="submit" value="Generate" id="sub1" name="sub1"></td></tr>
        </table> </form>   </body>
</html>

取得するには、以下のコードを使用します

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@include file="DBCon.jsp" %>
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body><table>
        <%
        String a=request.getParameter("type").trim();
        String b=request.getParameter("user").trim();
        String c=request.getParameter("from").trim();
        String d=request.getParameter("to").trim();
        try{
            String sql=("SELECT type, SUM(Update_Count) FROM Scope1 where type in ("+a+") and Specialist='"+b+"' and (RECVD_DATE >='"+c+"' and RECVD_DATE <='"+d+"') group by type");
            out.print(sql);
            //ps1=con.prepareStatement("SELECT type, SUM(Update_Count) FROM Scope1 where type in ("+a+") and Specialist='"+b+"' and (RECVD_DATE >='"+c+"' and RECVD_DATE <='"+d+"') group by type");
            //rs1=ps1.executeQuery();
            while(rs1.next())
            {
            %>
            <tr><td><%=rs1.getString(1)%></td><td><%=rs1.getString(2)%></td></tr>
            <%
            }
        }
        catch(Exception e)
        {
            out.println(e);
    }
%>
   </table> </body>
</html>

また、以下の行も動的にしたい、つまりオプション値がないため、データベースから取得する必要があります。

<option value="'Updates','Multibases','DAIS','Acds','Legis','LegAll'">All</option>

私を助けてください 。

ありがとう

4

1 に答える 1

0

選択クエリを実行してデータを取得するクラスにメソッドを作成します。これらのデータを ArrayList に保存します。

jsp でそのメソッドを呼び出し、html と Java (スクリプトレット) を組み合わせてドロップダウン ボックスに入力します。

JSP:

<%
ArrayList list = yourClass.getData();
int size = list.size();
%>
<select name="someName">
<%
for (int i=0;i<size;i++) 
{  
String s = (String)list.get(i);
%>

<option value="<%=s%>" ><%=s%></option>

<%}%>

    </select>

上記のコードがわかりにくい場合や意味をなさない場合は、JSP と html についてもっと勉強する必要があります。

また、JSP を使用する前に、クエリの実行方法や Java コア メソッドの使用方法を既に知っている必要があります。クエリを実行するメソッドについては、2 つの属性 (値、テキスト) の組み合わせを持つクラスを作成することをお勧めします。ArrayList には、文字列ではなく、作成したクラスの要素が必要です。クエリを実行すると、表示する値と使用する値が必要になります。

JSP:

<%

ArrayList list = yourClass.getData();
int size = list.size();

%>

<select name="someName">

<%for (int i=0;i<size;i++) 
{  

YourClass obj = (YourClass)list.get(i);

%>

<option value="<%=obj.getValue()%>" ><%=obj.getText()%></option>

<%}%>

</select>
于 2012-11-01T15:11:25.487 に答える