在学习jsp我们都知道,它是实现了在java中使用HTML标签。
Jsp是一种动态网页技术标准,也是JavaEE的标准
Jsp和Servert一样,是在服务器端执行的。
Jsp是在Servlet技术发展之后为了让开发者写html标签更方便而发展起来的技术
Jsp实际上就是Servlet.
下面是一个简单的下拉框dome
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta charset="UTF-8">
<title>Insert hero</title>
<link rel="stylesheet"
type="text/css" href="<%=basePath%>/Plugins/bootstrap-4.1.3-dist/css/bootstrap.min.css">
<script type="text/javascript"
src="<%=basePath%>/Plugins/jquery-3.2.1.min.js"></script>
<script type="text/javascript"
src="<%=basePath%>/Plugins/bootstrap-4.1.3-dist/js/bootstrap.min.js"></script>
</head>
<body>
<div class = "container-fluid
p-0">
<form class = "row" method = "POST">
<%
List<String>
list = new ArrayList<String>();
Connection
conn=null;
ResultSet
rs=null;
Statement
stmt=null;
conn=DbUtils.getConnection();
String
sql = "select
Typename from idtypes";
stmt =
conn.createStatement();
try{
rs=stmt.executeQuery(sql);
while(rs.next()){
list.add(rs.getString("Typename"));
}
}catch(SQLException ex){
System.out.println(ex.getMessage());
}
%>
<div class = "col-3">
<div class="form-group
row">
<label for="staticEmail"
class="col-sm-4 col-form-label">下拉框</label>
<div class="col-sm-8">
<select class="form-control"
id="selectdown" name="selectdown">
<%for(int i=0;i<list.size();i++){ %>
<option><%=list.get(i)%></option>
<%} %>
</select>
</div>
</div>
<div class="form-group
row">
<label for="staticEmail"
class="col-sm-4 col-form-label">下拉框</label>
<div class="col-sm-8">
<button type="button"
id="button" class="btn
btn-secondary btn-sm btn-block">试试</button>
</div>
</div>
</div>
</form>
</div>
</select>
</form>
</div>
以上的方法的下拉框中可以获取到 idtypes表中 Typename字段,在java方法中,使用list集合装所查找出来的数据
然后再在HTML中的select标签中,通过for循环出来。
以上方法单纯查找出一个字段,
一般在做项目时,下拉框内都会封装字段ID和字段名称。让进行修改或者新增时,我们不直接获取它的字段名称,一般都是获取到字段的ID,然后提交该ID过去,进行新增或修改。
以上的下拉框dome只能获取当前显示的字段名称ID,
下拉框domo2
多添加一段sql语句,
该方法是查询字段的ID,
然后放入HTML中的select标签中
<div class="form-group
row">
<label for="staticEmail"
class="col-sm-4 col-form-label">下拉框</label>
<div class="col-sm-8">
<select class="form-control"
id="selectdown" name="selectdown">
<%for(int i=0;i<list.size();i++){ %>
<%for(int j=0;j<listj.size();j++){ %>
<%if(j == i){ %>
<option value="<%=listj.get(j)%>"><%=list.get(i)%></option>
<%} %>
<%} %>
<%} %>
</select>
</div>
以上方法,,,,反正我觉得好麻烦啊
不如直接写个实体类:
package
com.ljh.pojo;
public class IdTypeId {
private int idTypeId;
private
String typename;
public int getIdTypeId() {
return idTypeId;
}
public void setIdTypeId(int idTypeId) {
this.idTypeId = idTypeId;
}
public
String getTypename() {
return typename;
}
public void setTypename(String typename) {
this.typename = typename;
}
@Override
public
String toString() {
return "IdTypeId
[idTypeId=" + idTypeId + ", typename=" + typename + "]";
}
public
IdTypeId() {}
public
IdTypeId(int idTypeId, String typename) {
super();
this.idTypeId = idTypeId;
this.typename = typename;
}
}
然后查询方法是这样写:
<%
List<IdTypeId>
idTypeIds = new ArrayList<IdTypeId>();
Connection
conni = null;
ResultSet rsi =
null;
Statement
sti = null;
IdTypeId
idTypeId = null;
conni
= DbUtils.getConnection();
String
sqli = "select
idTypeId,Typename from idtypes";
sti =
conni.createStatement();
try{
rsi = sti.executeQuery(sqli);
while(rsi.next()){
idTypeId = new IdTypeId(rsi.getInt(1),rsi.getString(2));
idTypeIds.add(idTypeId);
}
}
catch(SQLException
ex){
System.out.println(ex.getMessage());
}
request.setAttribute("idTypeIds", idTypeIds);
%>
再然后就通过c标签的<c:forEach ,将查到的数据进行循环出来
<div class="form-group
row">
<label for="staticEmail"
class="col-sm-4 col-form-label">下拉框</label>
<div class="col-sm-8">
<select class="form-control"
id="selectdown" name="selectdown">
<c:forEach items
= "${idTypeIds}"
var = "idType">
<option value="${idType.idTypeId }">${idType.typename }</option>
</c:forEach>
</select>
</div>
更多推荐
Java项目jsp中编写下拉框select并附上ID值
发布评论