JSP中的结果集
我需要一些帮助将结果集(rs)转发到jsp。 我在JAVA中实现了MVC结构(注意:我是新手)。 相同的逻辑流程如下:
- 基本forms:用户输入他的选择。
- 在提交时,流被定向到servlet。
- 从servlet流程转到Java文件,在该文件中处理数据库检索和其他逻辑。
- 然后将结果发送回servlet。
- Servlet将结果转发给JSP进行显示。
Servlet:
package com.example.web; import com.example.model.*; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class CoffeeSelect extends HttpServlet { public void doPost( HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String c = request.getParameter("type"); CoffeeExpert ce = new CoffeeExpert(); List result = ce.getTypes(c); request.setAttribute("styles", result); RequestDispatcher view = request.getRequestDispatcher("result.jsp"); view.forward(request, response); } }
java文件:
package com.example.model; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.*; public class CoffeeExpert { public List getTypes(String test) { ResultSet rs = null; List list = new ArrayList(); String Name = "na"; String PCANo = "NotFound"; String IP = "NotFound"; Types type=new Types(); if (test.equals("ABC")) { try{ Connection con = getConnection(); String Query = "select * from Table1"; // System.out.println(Query); rs = con.createStatement().executeQuery(Query); while (rs.next()) { type.setName(rs.getString(1)); type.setPCANo(rs.getString(2)); type.setIP(rs.getString(3)); System.out.println(Name+" "+PCANo+" "+IP); list.add(type); } rs.close(); con.close(); }catch (SQLException e) { System.out.println("SQLException"); e.printStackTrace(); } } else { System.out.println("Didn't find any data"); } return(list); } public static Connection getConnection() { Connection con = null; String Res = "na"; String BusinessUnit = "NotFound"; ResultSet rs = null; try { // Load the JDBC driver String driverName = "oracle.jdbc.driver.OracleDriver"; // String driverName = "oracle.jdbc.OracleDriver"; Class.forName(driverName); // Create a connection to the database //Dev String serverName = "xx.xx.xx.xx"; String portNumber = "1521"; String sid = "SSSS"; String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid; String username = "SSSSS"; String password = "password"; con = DriverManager.getConnection(url, username, password); return con; } catch (ClassNotFoundException e) { System.out.println("ClassNotFoundException"); e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return con; } }
如下面的解决方案所示,另一个模型类
package com.example.model; public class Types { private String Name; private String PCANo; private String IP; //constructors //getter-setters public String setName(String Name){ return this.Name = Name; } public String getName() { return this.Name; } public String setPCANo(String PCANo) { return this.PCANo = PCANo; } public String getPCANo() { return this.PCANo; } public String setIP(String IP) { return this.IP = IP; } public String getIP() { return this.IP; } }
最终的JSP显示文件
Final Data JSP View
<% List styles = (List) request.getAttribute("styles"); if(styles!=null){ for(Types type: styles){ out.println("
" + type.getName() + " " + type.getPCANo()+ " " + type.getIP()); } } %>
结果只获取显示的所有行的最后一行,即数据库表有三行,最后一行显示3次。
ABC PCA100 XXX.1.0.0
ABC PCA100 XXX.1.0.0
ABC PCA100 XXX.1.0.0
您必须创建一个表示Name
, PCANo
和IP
的model
类。
public class Types { private String name; private String pcaNo; private String ip; //constructors //getter-setters }
和getTypes
方法返回CoffeeExpert
类的List
。
public List getTypes(String type) { Connection con = getConnection(); String Query = "select * from ABC"; List list=new ArrayList(); rs = con.createStatement().executeQuery(Query); while (rs.next()) { Types type=new Types(); type.setName(rs.getString(1)); type.setPcaNo(rs.getString(2)); type.setIp(rs.getString(3)); list.add(type); } rs.close(); con.close(); return list; }
要在.jsp页面中显示List
:
JSP标签:
<% List styles = (List ) request.getAttribute("styles"); if(styles!=null){ for(Types type: styles){ out.println("
" + type.getName() + " " + type.getPcaNo()); } } %>
JSTL:
参考SO线程:
- JSTL FAQ – 使用JSTL 1.2它需要单个http://download.java.net/maven/1/jstl/jars/jstl-1.2.jar jar文件。
- 如何避免JSP-Files中的Java代码?