0

ストラットを使用して、データベースからフェッチしたデータをドロップダウンリストのJSPにどのように表示しますか?都市の配列リストを使用してドロップダウンリストのコードを実行しましたが、エラーが発生しました。

HTTP Status 500 - type Exception report message description 
The server encountered an internal error () that prevented it from fulfilling this request.   
exception org.apache.jasper.JasperException: tag 'select', field 'list', name 
  'location': The requested list key '%{city}' could not be resolved 
   as a collection/array/map/enumeration/iterator type.

都市リストに対してこのコードを実行したのは次のとおりです。

JAVAコード

 public class Event extends ActionSupport{

 private String description;
 public List<String> city;
 public List<String> getCity() {
 return city;
 }
 public void setCity(List<String> city) {
 this.city = city;
 }   
 public String execute() throws Exception{

 String url = "jdbc:mysql://localhost:20976";  
 String dbName = "chetan";  
 String driverName = "com.mysql.jdbc.Driver";  
 String user = "root";
 String pass = "root121";
 Connection con = null;  
 Statement stmt = null;  
 ResultSet rs = null;  
 try {  
    Class.forName(driverName).newInstance();  
    con = DriverManager.getConnection(url + dbName, user,pass);  
    stmt = con.createStatement();  
 } catch (Exception e) {  
    System.out.println(e.getMessage());  
 }  

 rs = stmt.executeQuery("select * from City");  
 while (rs.next()) {  
    city.add(rs.getString("Location"));  


 }  

 return SUCCESS;  

 }

市のJSPコード

 <s:select name="location" label="Location" headerValue="Select City" list="city" />
 <s:submit value="Submit" method="execute" key="submit" align="center" />
4

1 に答える 1

0

リストに項目を追加する前にarrayListを初期化します

city = new ArrayList<String>();

あなたのアクションではリスト名を として宣言したcityので、あなたの選択ではlist属性も同じでなければなりません

<s:select label="City List" headerKey="-1" list="city" name="whatever" />

また、name私の知る限り、属性は括弧なしである必要があり、送信アクションで宣言している変数名と一致する必要があります。

于 2012-07-31T10:07:09.010 に答える