如何从方法返回多个变量?

时间:2017-03-16 12:12:42

标签: java jsp arraylist methods

这里我从数据库获取数据并将这些数据放入不同的ArrayLists中。我需要将所有这些数组列表传递给jsp页面。如何传递多个ArrayLists,这是我的代码,

 package ConnectionPack;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.Connection;
 import java.util.ArrayList;

 import com.mysql.jdbc.Statement;

 public class DBConnection {
  String DB_URL="jdbc:mysql://localhost:3306/bbc";
  String DB_Username="root";
  String DB_Password="";
  String sql ="select * from news";
  Connection con = null;


ArrayList<String> para=new ArrayList<String>();
ArrayList<String> link=new ArrayList<String>();
ArrayList<Integer> image=new ArrayList<Integer>();

public ArrayList data(){
    ArrayList<String> li=new ArrayList<String>();
    ArrayList<String> li1=new ArrayList<String>();
    ArrayList<String> li2=new ArrayList<String>();
    ArrayList<Integer> li3=new ArrayList<Integer>();
    try{
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection(DB_URL,DB_Username,DB_Password);  
        Statement statement = (Statement) con.createStatement();
        ResultSet resultset = statement.executeQuery(sql);

        while(resultset.next()){
            String headdata = resultset.getString("Title");
            li.add(headdata);

            String paradata = resultset.getString("Description");
            li1.add(paradata);

            String linkdata = resultset.getString("Link");
            li2.add(linkdata);

            int imagedata = resultset.getInt("id");
            li3.add(imagedata);
        }   
    }catch(Exception e){
        e.printStackTrace();
    }
    return li;
}
    //close the connection

}

我需要通过这个&#39; li&#39;,&#39; li1&#39;,&#39; li2&#39;,&#39; li3&#39;到JSP页面,我该怎么做?

1 个答案:

答案 0 :(得分:1)

在我看来,您需要传回新闻列表,例如定义一个名为News的类(包含您的标题,ID等)并返回List<News>

请注意,这会强制某些类型安全,而不是返回(比方说)字符串列表列表。您可以更进一步并返回NewsList(它本身包含List<News>并且能够迭代这个 - 或者您需要的任何其他功能 - 可能会渲染吗?)

不要害怕创造这样的物体。它们为您提供类型安全性以及封装行为和内容的能力。