想请问一下,jsp中怎么绑定数据库和下拉列表。然后根据选中的项,再对数据库做出相应操作。
比如我有一个表student(stuID,stuName),我想把stuName的值绑定到jsp的下拉列表当中,然后再根据选中的stuName,对数据库进行更新。比如删除这个stuName的记录。参考了一些帖子,自己试了一下,但还是不行。所以上来求助,谢谢大家了!
比如我有一个表student(stuID,stuName),我想把stuName的值绑定到jsp的下拉列表当中,然后再根据选中的stuName,对数据库进行更新。比如删除这个stuName的记录。参考了一些帖子,自己试了一下,但还是不行。所以上来求助,谢谢大家了!
解决方案 »
- word转换为HTML,本地测试可以,请问放服务器上为什么无法使用
- Note: This element neither has attached source nor attached Javadoc and hence no
- 如何把做好的网站部署到服务器上
- 软件开发面试中涉及到的SQL方面的经典题目征集-- 一方有难八方支援!
- rsync远程同步静态文件后,页面如何能自动更新,避免重启服务器???
- 从数据库中查询生成XML,错误在哪里?
- 跪求一java web开发qq群,交流经验
- 一个JAVASCRIPT问题
- 如何做 war包
- 简单问题,关于表单提交
- 怎样在程序中将SQLServer数据库中的一张表导入到Excel中
- struts建立中ActionFrom总是提示异常
只给你思路吧1. 取得所有的集合 list
2. 在jsp页面中的<select name="stuId">
3. 遍历 list (for循环)
4. <option value="<%=student.getId()%>"><%=student.getName()%></option>
5. 结束 select </select>
6. 注意 select 要放在 form中
7. 在响应的页面中 使用 request.getParameterValue("stuId") 就可以得到你选择的ID
有点复杂,不知道你能不能看懂:
准备一个JS文件
function GetXmlHttpObject(){
var xmlHttp=null;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}function loadXMLDoc(filepath){
var xmlDoc = null;
try{//Internet Explorer
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
}catch(e){
try{//Firefox, Mozilla, Opera, etc.
xmlDoc = document.implementation.createDocument("","",null);
}catch(e){
alert(e.message);
}
} try{
xmlDoc.async = false;
xmlDoc.load(filepath);
}catch(e){
alert(e.message)
}
return xmlDoc;
}function loadXMLString(str){
var xmlStr = null;
try{//Internet Explorer
xmlStr = new ActiveXObject("Microsoft.XMLDOM");
xmlStr.async="false";
xmlStr.loadXML(str);
}catch(e){
try{//Firefox, Mozilla, Opera, etc.
var parser=new DOMParser();
xmlStr = parser.parseFromString(str,"text/xml");
}catch(e){
alert(e.message);
}
}
return xmlStr;
}JSP:
<%@ page language="java" pageEncoding="utf-8"%>
<%@ include file="/page/commons/basePath.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>AJAX-CHAPTER1</title>
<meta http-equiv="cache-control" content="no-cache" />
<script type="text/javascript" src="<%=basePath%>/script/my.js"></script>
<script type="text/javascript">
function ajaxFunction(area_pid, selectObj){
var xmlHttp = null;
xmlHttp = GetXmlHttpObject();
if(xmlHttp == null){
alert("您的浏览器不支持AJAX");
return ;
}
//发送请求,处理结果
xmlHttp.onreadystatechange=function(){
//处理响应的结果
//alert(xmlHttp.readyState);
if (xmlHttp.readyState==4){
var text = xmlHttp.responseText;
while(selectObj.childNodes.length > 0){
selectObj.removeChild(selectObj.childNodes[0]);
}
addNode("", "请选择", selectObj);
var xmlDoc = loadXMLString(text);
var areaNodes = xmlDoc.getElementsByTagName("area");
for(var i=0; i<areaNodes.length; i++){
var id = areaNodes[i].getAttributeNode("id").nodeValue;
var name = areaNodes[i].getAttributeNode("name").nodeValue;
addNode(id, name, selectObj);
}
}
};
xmlHttp.open("GET","<%=basePath%>/Chapter1Servlet?pid=" + area_pid + "&time=" + new Date().getTime(),true);
xmlHttp.send(null);
}
function addNode(attr, text, obj){
var option = document.createElement("option");
option.setAttribute("value",attr);
var optionText = document.createTextNode(text);
option.appendChild(optionText);
obj.appendChild(option);
}
</script>
</head>
<body onload="ajaxFunction(0, document.getElementById('province'))">
省份:
<select id="province"
onchange="ajaxFunction(this.value, document.getElementById('city'))">
<option value="">
请选择
</option>
</select>
城市:
<select id="city">
<option value="">
请选择
</option>
</select>
</body>
</html>
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import chapter1.model.Area;
import chapter1.service.Chapter1Service;
import chapter1.service.impl.Chapter1ServiceImpl;public class Chapter1Servlet extends HttpServlet {
private Chapter1Service chapter1Service;
@Override
public void init() throws ServletException {
super.init();
chapter1Service = new Chapter1ServiceImpl();
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Area> list = new ArrayList<Area>();
PrintWriter out = response.getWriter();
int pid = -1;
try{
pid = Integer.parseInt(request.getParameter("pid"));
}catch(NumberFormatException e){
}
if(pid != -1){
list = chapter1Service.findAreaByPid(pid);
out.print(getAreaXML(list));
}else{
out.print("");
}
out.flush();
out.close();
}
private String getAreaXML(List<Area> list) {
String str = "<root>";
if (list != null && list.size() > 0) {
for (Area area : list) {
str += "<area id='" + area.getAreaId() + "' name='"
+ area.getAreaName() + "' pid='" + area.getAreaPid()
+ "'/>";
}
}
str += "</root>";
return str;
}
}还需要建立数据库,需要了解AJAX
你选中一个select 都是有个value的 之后到后台,action中处理呗 得到一个value做一个操作
可以不用Ajax,但ajax 会很好解决这个问题的,