select 的问题构成 JSP 中的人口
Problems with select form population in JSP
我想将 List 对象传递给 html select。
问题是,html select.
没有附加任何内容
这是一个目标 class:
package test;
public class Obiekt {
private String nazwa;
private String adres;
private String dyscyplina;
private int idObiekt;
private int idTermin;
public String getNazwa() {
return nazwa;
}
public void setNazwa(String nazwa) {
this.nazwa = nazwa;
}
public String getAdres() {
return adres;
}
public void setAdres(String adres) {
this.adres = adres;
}
public int getIdObiekt() {
return idObiekt;
}
public void setIdObiekt(int idObiekt) {
this.idObiekt = idObiekt;
}
public String getDyscyplina() {
return dyscyplina;
}
public void setDyscyplina(String dyscyplina) {
this.dyscyplina = dyscyplina;
}
public int getIdTermin() {
return idTermin;
}
public void setIdTermin(int idTermin) {
this.idTermin = idTermin;
}
}
这是一个 class,它创建了 Obiekts 列表:
package test;
import java.sql.*;
import java.util.ArrayList;
public class Wypelnij {
Connection conn = null;
public Wypelnij() throws ClassNotFoundException
{
PreparedStatement pst = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "zespolowy";
String driver = "com.mysql.jdbc.Driver";
String userName = "adminek";
String password = "123";
try {
Class.forName(driver).newInstance();
conn = DriverManager
.getConnection(url + dbName, userName, password);
} catch (Exception e) {
System.out.println(e);
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public ArrayList<Obiekt> getObiekty() throws SQLException
{
ArrayList<Obiekt> obiekty = new ArrayList<Obiekt>();
Statement pst = null;
ResultSet rs = null;
String query = "SELECT nazwa,adres,dyscyplina from obiekty;";
pst = conn.createStatement();
rs = pst.executeQuery(query);
while(rs.next()){
Obiekt obiekt = new Obiekt();
obiekt.setNazwa(rs.getString("nazwa"));
obiekt.setAdres(rs.getString("adres"));
obiekt.setDyscyplina(rs.getString("dyscyplina"));
obiekty.add(obiekt);
}
return obiekty;
}
}
最后:
<select>
<c:forEach items="${obiekty}" var="obiekt">
<option value="1"><c:out value="${obiekt.nazwa}"/></option>
</c:forEach>
</select>
正如我所说,select from 什么也没显示。哪里出了问题?
我在 jsp 页面的顶部包含了 taglib 前缀子句。
您可以通过两种方式做到这一点:
1.Calling Java 里面的方法 jsp
<%
List<Obiekt> list = new Wypelnij().getObiekty();
%>
<select>
<%
for(Obiekt obiekt : list){
%>
<option value="1" ><%=obiekt.getNazwa()%><option/>
<% } %>
</select>
2.Also 您可以将列表从 Servlet
传递给 JSP
。使用 JSTL
你可以显示
List<Obiekt> list = new Wypelnij().getObiekty();
request.setAttribute("obiekty",list);
RequestDispatcher requestDispatcher =
request.getRequestDispatcher("YourJspUrlGoesHere");
requestDispatcher.forward(request, response);
以下代码必须在JSP
页。
<select>
<c:forEach items="${obiekty}" var="obiekt">
<option value="1">${obiekt.nazwa}</option>
</c:forEach>
</select>
希望对您有所帮助。
还要检查您的列表对象大小(从数据库中获取的记录)是否大于 0。
我想将 List 对象传递给 html select。
问题是,html select.
没有附加任何内容这是一个目标 class:
package test;
public class Obiekt {
private String nazwa;
private String adres;
private String dyscyplina;
private int idObiekt;
private int idTermin;
public String getNazwa() {
return nazwa;
}
public void setNazwa(String nazwa) {
this.nazwa = nazwa;
}
public String getAdres() {
return adres;
}
public void setAdres(String adres) {
this.adres = adres;
}
public int getIdObiekt() {
return idObiekt;
}
public void setIdObiekt(int idObiekt) {
this.idObiekt = idObiekt;
}
public String getDyscyplina() {
return dyscyplina;
}
public void setDyscyplina(String dyscyplina) {
this.dyscyplina = dyscyplina;
}
public int getIdTermin() {
return idTermin;
}
public void setIdTermin(int idTermin) {
this.idTermin = idTermin;
}
}
这是一个 class,它创建了 Obiekts 列表:
package test;
import java.sql.*;
import java.util.ArrayList;
public class Wypelnij {
Connection conn = null;
public Wypelnij() throws ClassNotFoundException
{
PreparedStatement pst = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "zespolowy";
String driver = "com.mysql.jdbc.Driver";
String userName = "adminek";
String password = "123";
try {
Class.forName(driver).newInstance();
conn = DriverManager
.getConnection(url + dbName, userName, password);
} catch (Exception e) {
System.out.println(e);
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public ArrayList<Obiekt> getObiekty() throws SQLException
{
ArrayList<Obiekt> obiekty = new ArrayList<Obiekt>();
Statement pst = null;
ResultSet rs = null;
String query = "SELECT nazwa,adres,dyscyplina from obiekty;";
pst = conn.createStatement();
rs = pst.executeQuery(query);
while(rs.next()){
Obiekt obiekt = new Obiekt();
obiekt.setNazwa(rs.getString("nazwa"));
obiekt.setAdres(rs.getString("adres"));
obiekt.setDyscyplina(rs.getString("dyscyplina"));
obiekty.add(obiekt);
}
return obiekty;
}
}
最后:
<select>
<c:forEach items="${obiekty}" var="obiekt">
<option value="1"><c:out value="${obiekt.nazwa}"/></option>
</c:forEach>
</select>
正如我所说,select from 什么也没显示。哪里出了问题? 我在 jsp 页面的顶部包含了 taglib 前缀子句。
您可以通过两种方式做到这一点:
1.Calling Java 里面的方法 jsp
<%
List<Obiekt> list = new Wypelnij().getObiekty();
%>
<select>
<%
for(Obiekt obiekt : list){
%>
<option value="1" ><%=obiekt.getNazwa()%><option/>
<% } %>
</select>
2.Also 您可以将列表从 Servlet
传递给 JSP
。使用 JSTL
你可以显示
List<Obiekt> list = new Wypelnij().getObiekty();
request.setAttribute("obiekty",list);
RequestDispatcher requestDispatcher =
request.getRequestDispatcher("YourJspUrlGoesHere");
requestDispatcher.forward(request, response);
以下代码必须在JSP
页。
<select>
<c:forEach items="${obiekty}" var="obiekt">
<option value="1">${obiekt.nazwa}</option>
</c:forEach>
</select>
希望对您有所帮助。
还要检查您的列表对象大小(从数据库中获取的记录)是否大于 0。