-2

私のjspファイルは次のとおりです。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.util.*" %>
<%@ page import="com.elc.util.*" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Select Your Department</h1>
<s:form action="Comapny">
<table bordercolor="red">
<tr>
    <td>Select your Option</td>
    <td>
    <s:combobox name ="Depart"list="%{depat}" value="Select" headerValue="-1"    
 headerKey="select your option"></s:combobox>
    </td>
 </tr>
 <tr>
    <td></td>
    <td>
    <s:submit value="Select"></s:submit>
    </td>
 </tr>

 </table>

</s:form>
</body>
</html>

Aそして私のアクションクラスは...

package com.elc.action;


import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;


import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class Department extends ActionSupport {
private String Dept;
private List<Object> depat;

public List<Object> getDepat() {
    return depat;
}

public void setDepat(List<Object> depat) {
    this.depat = depat;
}

public String getDept() {
    return Dept;
}

public void setDept(String dept) {
    Dept = dept;
}
//@SuppressWarnings("unchecked")
public String Select(){
        Collection<String> o = DBConnection.getConnection();
depat = new ArrayList<Object>();
Iterator<String> i = o.iterator();
while(i.hasNext()){
    depat.add(i);

}
System.out.println("the list contains..........."+depat);
return "success";
}
//@SuppressWarnings("static-access")
public String execute(){
    return SUCCESS;
}

   }

私のDAOクラスは......。

  package com.elc.action;

  import java.sql.*;
  import java.util.ArrayList;
  import java.util.Collection;
  public class DBConnection {
public static Collection<String> getConnection(){
    ArrayList<String> l = new ArrayList<String>();
    try{
        Class.forName(DBConstants.Driver);
        Connection con = DriverManager.getConnection(DBConstants.url,         
                         DBConstants.userName, DBConstants.password);
        Statement st = con.createStatement();
        String query = DBConstants.SELECT +"* from role";
        ResultSet rs = st.executeQuery(query);
        while(rs.next()){
            rs.getInt(1);
            String dept = rs.getString(2);
            l.add(dept);
        }

    }catch(ClassNotFoundException c){
        System.out.println("the classs u are asking not found");
        c.printStackTrace();
    }catch(SQLException s){
        System.out.println("the sql exception is occured");
        s.printStackTrace();
    }
    return l;
}

   }

最初に、DBConnection.getconnectionメソッドでObjectのリターンを使用して、テーブルを[HR、Tester、Software Engineer]として取得しましたが、Webにドロップダウンするために使用すると、そのまま表示されていました...つまり[HR、Tester 、ソフトウェアエンジニア]なので、最初のHrとして、そのテスターの下とそのソフトウェアエンジニアの下に出力が必要です。DBConnection.getconnectionメソッドでCollectionまたはListreturnを使用すると、jasper例外が発生しました。

誰かが私に答えを教えてくれますか.....

4

2 に答える 2

0

私のjspにはエラーがなく、Actionクラスを変更しました。これは、現在投稿しているだけです。残りのプログラムは同じです。

public class Department extends ActionSupport {

 @SuppressWarnings("rawtypes")
ArrayList deptList;
@SuppressWarnings("rawtypes")
public ArrayList getDeptList() {
    return deptList;
}

@SuppressWarnings("rawtypes")
public void setDeptList(ArrayList deptList) {
    this.deptList = deptList;
}


public String Select(){
         deptList = DBConnection.getConnection();
System.out.println("the list contains..........."+deptList);
return "checked";
}
public String execute(){
    return SUCCESS;
}

    }

最初にコレクションインターフェイスを作成しましたが、その変数に対するゲッターとセッターがありませんでした。次に、配列リストを作成し、ゲッターとセッターがあり、正常に動作しています。

于 2012-11-30T11:41:26.453 に答える
0
public class Mainlist {
    DBLayer db;

    public Mainlist() {
        db = new DBLayer();
    }

    public ArrayList getCategoryname() {
        ArrayList<String> list = new ArrayList();
        try {
            String sql = "select category_name from category";
            PreparedStatement ps = db.getConnection().prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            if (rs != null) {
                while (rs.next()) {
                    list.add(rs.getString("category_name"));
                    // System.out.println(list);
                }
            }
            return list;
        } catch (Exception e) {
            e.printStackTrace();
            return list;
        }
    }
}
于 2013-01-18T13:28:39.763 に答える