- 需求描述
- 实现员工信息的分页展示;
- 完成员工信息的添加,修改功能;
- 完成员工删除功能;
2.效果图
3.技术要求 使用jsp+servlet+jdbc完成业务需求,技术架构为web三层架构
项目要求
1.学生表: 表名student id编号,name学生名,age 年龄,sex 性别(0表示女,1表示男)
url头像, hobby爱好(敲代码,背理论,抄作业),
isdelte(0代表删除,1代表正常展示) 外键did
专业表:dept(id专业编号,name专业名称,
flag专业类别(0代表有前景,1代表没前景)
bid 外键 与责任人表关联)
注:有前景的专业负责人有乔**,王**,没前景的专业负责人为梁**
专业责任人表:boss(bid 责任人编号,bname 责任人名)
2.如图分页展示信息,每页3条
可以根据学生名称模糊查询
可以根据生日区间查询
专业下拉框查询,要求下拉框数据动态获取,并且只能显示有前景的专业
3.删除功能
全选选不选
提示是否删除数据
完成逻辑删除功能;
4.员工修改功能
点击修改,跳转到修改页面对应的员工信息数据回显
数据回显
修改数据(专业和责任人的要求和添加一样),修改成功跳转到展示页面
思路实现: 通过三层架构模式在dao层连接数据库 获取表数据(如没有表在库里创建即可)
在pojo层创建实体类 service层建立连接 servlet调用service的方法实现增删改查并交互前端代码
代码如下:
dao层
package com.jy.dao;
import com.jy.pojo.Dept;
import com.jy.pojo.PageBean;
import com.jy.pojo.Student;
import com.jy.utils.DruidUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import java.sql.SQLException;
import java.util.List;
public class StudentDao {
//连接数据库
static QueryRunner qr;
static {
try {
qr = new QueryRunner(DruidUtils.getDataSource());
} catch (SQLException e) {
e.printStackTrace();
}
}
//查询父表所有有前景
public List<Dept> showFu() throws SQLException {
//编写sql
String sql="select * from dept where flag=0";
//执行sql
return qr.query(sql,new BeanListHandler<>(Dept.class));
}
//查询父表
public List<Dept> showFf() throws SQLException {
//编写sql
String sql="select * from dept";
//执行sql
return qr.query(sql,new BeanListHandler<>(Dept.class));
}
//查询所有
public PageBean show(String name, String dt1, String dt2, String did, Integer pageNumber) throws SQLException {
PageBean pageBean = new PageBean();
//设置pageNumber
pageBean.setPageNumber(pageNumber);
//查询总共有多少条数据
String sqlCount="select count(s.id) count from student s where isdelete=1";
//拼接模糊查询
if (name!=null&&!name.equals("")){
sqlCount+=" and s.name like '%"+name+"%' ";
}
if (dt1!=null&&!dt1.equals("")){
sqlCount+=" and s.time > '"+dt1+"' ";
}
if (dt2!=null&&!dt2.equals("")){
sqlCount+=" and s.time < '"+dt2+"' ";
}
if (did!=null&&!did.equals("")){
sqlCount+=" and s.did="+did;
}
//执行sql
String Count = qr.query(sqlCount, new ScalarHandler()).toString();
//设置总条数
pageBean.setTotalCount(Integer.parseInt(Count));
//编写sql
String sql="select s.*,d.name dname,b.bname bname from student s left join dept d on s.did = d.id left join boss b on d.bid = b.bid where isdelete=1 ";
//拼接模糊查询
if (name!=null&&!name.equals("")){
sql+=" and s.name like '%"+name+"%' ";
}
if (dt1!=null&&!dt1.equals("")){
sql+=" and s.time > '"+dt1+"' ";
}
if (dt2!=null&&!dt2.equals("")){
sql+=" and s.time < '"+dt2+"' ";
}
if (did!=null&&!did.equals("")){
sql+=" and s.did="+did;
}
//拼接分页
sql+=" limit ?,?";
//处理参数
Object[] c={(pageNumber-1)*pageBean.getPageSize(),pageBean.getPageSize()};
//执行sql
List<Student> list = qr.query(sql, new BeanListHandler<>(Student.class),c);
//设置list
pageBean.setList(list);
return pageBean;
}
//添加
public void add(Student st) throws SQLException {
//编写sql
String sql="insert into student values (null,?,?,?,?,?,?,?,?)";
//处理参数
Object[] c={st.getName(),st.getAge(),st.getSex(),st.getUrl(),st.getHobby()
,st.getTime(),st.getIsdelete(),st.getDid()};
//执行sql
qr.update(sql,c);
}
//ajax
public Student ajax(String name) throws SQLException {
//编写sql
String sql="select * from student where name=?";
//执行sql
return qr.query(sql,new BeanHandler<>(Student.class),name);
}
//异步获取
public String yi(String did) throws SQLException {
//编写sql
String sql="select b.bname bname from student s left join dept d on s.did = d.id left join boss b on d.bid = b.bid where isdelete=1 and did=?";
//执行sql
return qr.query(sql,new ScalarHandler(),did).toString();
}
//删除
public void delete(String id) throws SQLException {
//编写sql
String sql="update student set isdelete=? where id=?";
//执行sql
qr.update(sql,0,id);
}
//回显
public Student byId(String id) throws SQLException {
//编写sql
String sql="select s.*,d.name dname,b.bname bname from student s left join dept d on s.did = d.id left join boss b on d.bid = b.bid where isdelete=1 and s.id=?";
//执行sql
return qr.query(sql,new BeanHandler<>(Student.class),id);
}
//修改
public void update(Student st) throws SQLException {
//编写sql
String sql="update student set name=?,age=?,url=?,sex=?,hobby=?,time=?,did=? where id=?";
//处理参数
Object[] c={st.getName(),st.getAge(),st.getUrl(),st.getSex(),st.getHobby()
,st.getTime(),st.getDid(),st.getId()};
//执行sql
qr.update(sql,c);
}
}
pojo层实体类 根据你所创建的表来创建
service层
package com.jy.service;
import com.jy.dao.StudentDao;
import com.jy.pojo.Dept;
import com.jy.pojo.PageBean;
import com.jy.pojo.Student;
import java.sql.SQLException;
import java.util.List;
public class StudentService {
static StudentDao dao=new StudentDao();
//查询父表所有
public List<Dept> showFu(){
try {
return dao.showFu();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//查询父表
public List<Dept> showFf(){
try {
return dao.showFf();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//查询所有
public PageBean show(String name, String dt1, String dt2, String did, String pageNumber){
try {
return dao.show(name,dt1,dt2,did,Integer.parseInt(pageNumber));
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//添加
public void add(Student st){
try {
dao.add(st);
} catch (SQLException e) {
e.printStackTrace();
}
}
//ajax
public Student ajax(String name){
try {
return dao.ajax(name);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//异步获取
public String yi(String did){
try {
return dao.yi(did);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//删除
public void delete(String id){
try {
dao.delete(id);
} catch (SQLException e) {
e.printStackTrace();
}
}
//回显
public Student byId(String id){
try {
return dao.byId(id);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//修改
public void update(Student st){
try {
dao.update(st);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
servlet层
查询所有根据dao层的show
package com.jy.servlet;
import com.jy.pojo.Dept;
import com.jy.pojo.PageBean;
import com.jy.pojo.Student;
import com.jy.service.StudentService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/ShowAllServlet")
public class ShowAllServlet extends HttpServlet {
StudentService st=new StudentService();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决乱码
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
//设置当前页
String pageNumber="1";
//判断前端有没有传过来当前页
if (request.getParameter("pageNumber")!=null){
pageNumber=request.getParameter("pageNumber");
}
//根据前端获取数据
String name = request.getParameter("name");
String dt1 = request.getParameter("dt1");
String dt2 = request.getParameter("dt2");
String did = request.getParameter("did");
//调用方法
PageBean pageBean = st.show(name,dt1,dt2,did,pageNumber);
List<Dept> depts = st.showFu();
List<Dept> ff = st.showFf();
//将查询结果存入域中
request.setAttribute("pageBean",pageBean);
request.getSession().setAttribute("fu",depts);
request.getSession().setAttribute("ff",ff);
request.setAttribute("name",name);
request.setAttribute("dt1",dt1);
request.setAttribute("dt2",dt2);
request.setAttribute("did",did);
//转发给show
request.getRequestDispatcher("show.jsp").forward(request,response);
}
}
show的前端代码
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>展示页面</title>
<script src="js/jquery-1.7.2.js"></script>
</head>
<body>
${pageBean.list}<br/>
${fu}<br/>
<a href="add.jsp">添加</a>
<input type="button" id="de" value="删除">
<form action="ShowAllServlet" method="post">
学生名:<input type="text" name="name" value="${name}">
<input type="submit" value="搜索">
生日:
<input type="date" name="dt1" value="${dt1}">
<input type="date" name="dt2" value="${dt2}">
<input type="submit" value="搜索">
专业方向:<select name="did">
<option value="">-请选择-</option>
<c:forEach items="${fu}" var="f">
<option value="${f.id}"
<c:if test="${did==f.id}">selected</c:if>
>${f.name}</option>
</c:forEach>
</select>
</form>
<form action="DeleteServlet" method="post" id="del">
<table border="1">
<tr>
<td>
<input type="checkbox" id="zong">
</td>
<td>ID</td>
<td>学生</td>
<td>头像</td>
<td>年龄</td>
<td>性别</td>
<td>爱好</td>
<td>生日</td>
<td>专业</td>
<td>专业负责人</td>
<td>操作</td>
</tr>
<c:forEach items="${pageBean.list}" var="st">
<tr>
<td>
<input type="checkbox" class="fen" name="id" value="${st.id}">
</td>
<td>${st.id}</td>
<td>${st.name}</td>
<td>
<img src="images/${st.url}" width="100px">
</td>
<td>${st.age}</td>
<td>
<c:if test="${st.sex==1}">男</c:if>
<c:if test="${st.sex==0}">女</c:if>
</td>
<td>${st.hobby}</td>
<td>${st.time}</td>
<td>${st.dname}</td>
<td>${st.bname}</td>
<td><a href="ByIdServlet?id=${st.id}">修改</a></td>
</tr>
</c:forEach>
</table>
</form>
共${pageBean.totalPage}页${pageBean.totalCount}条
<a href="ShowAllServlet?pageNumber=1&name=${name}&dt1=${dt1}&dt2=${dt2}&did=${did}">首页</a>
<c:if test="${pageBean.pageNumber>1}">
<a href="ShowAllServlet?pageNumber=${pageBean.pageNumber-1}&name=${name}&dt1=${dt1}&dt2=${dt2}&did=${did}">上一页</a>
</c:if>
<%--显示页码--%>
<c:forEach begin="1" end="${pageBean.totalPage}" step="1" var="i">
<a href="ShowAllServlet?pageNumber=${i}&name=${name}&dt1=${dt1}&dt2=${dt2}&did=${did}">${i}</a>
</c:forEach>
<c:if test="${pageBean.pageNumber<pageBean.totalPage}">
<a href="ShowAllServlet?pageNumber=${pageBean.pageNumber+1}&name=${name}&dt1=${dt1}&dt2=${dt2}&did=${did}">下一页</a>
</c:if>
<a href="ShowAllServlet?pageNumber=${pageBean.totalPage}&name=${name}&dt1=${dt1}&dt2=${dt2}&did=${did}">末页</a>
<script>
$("#zong").click(function () {
$(".fen").attr("checked",this.checked);
});
$("#de").click(function () {
if ($(".fen:checked").length>0){
if (confirm("您确定要删除吗?")){
$("#del").submit();
}
} else {
alert("至少选择一个删除")
}
});
</script>
</body>
</html>
添加根据dao层的add
package com.jy.servlet;
import com.fasterxml.jackson.databind.util.BeanUtil;
import com.jy.pojo.Dept;
import com.jy.pojo.Student;
import com.jy.service.StudentService;
import org.apache.commons.beanutils.BeanUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@MultipartConfig
@WebServlet("/AddServlet")
public class AddServlet extends HttpServlet {
StudentService st=new StudentService();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决乱码
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
//根据前端获取数据
Map<String, String[]> map = request.getParameterMap();
//创建对象
Student stu = new Student();
try {
//将集合数据给到对象中
BeanUtils.populate(stu,map);
//处理爱好
String[] hobbies = request.getParameterValues("hobby");
//将数组转换为字符串
String hobby = Arrays.toString(hobbies);
stu.setHobby(hobby);
//获取图片
Part url = request.getPart("url");
//判断是否获取到图片
if (url.getSize()>0){
//获取图片名
String fileName = url.getSubmittedFileName();
//将图片名传入对象
stu.setUrl(fileName);
//获取项目内存放图片的路劲
String path = request.getServletContext().getRealPath("/images/");
//将图片存入项目内
url.write(path+fileName);
}
stu.setIsdelete(1);
//调用方法
st.add(stu);
//重定向到查询所有
response.sendRedirect("ShowAllServlet");
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
添加的异步获取
package com.jy.servlet;
import com.jy.pojo.Dept;
import com.jy.pojo.Student;
import com.jy.service.StudentService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/YiServlet")
public class YiServlet extends HttpServlet {
StudentService st=new StudentService();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决乱码
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
//根据前端获取数据
String did = request.getParameter("did");
//调用方法
String bname = st.yi(did);
//将查询结果响应到前台
response.getWriter().write(bname);
}
}
添加的去重ajax
package com.jy.servlet;
import com.jy.pojo.Dept;
import com.jy.pojo.Student;
import com.jy.service.StudentService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/AjaxServlet")
public class AjaxServlet extends HttpServlet {
StudentService st=new StudentService();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决乱码
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
//根据前端获取数据
String name = request.getParameter("name");
//调用方法
Student student = st.ajax(name);
if (student!=null){
response.getWriter().write("no");
}
}
}
添加的前端代码
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加页面</title>
<script src="js/jquery-1.7.2.js"></script>
</head>
<body>
<form action="AddServlet" method="post" enctype="multipart/form-data">
学生名:<input type="text" name="name" id="name">
<span id="span1"></span>
<br/>
年龄:<input type="text" name="age"><br/>
头像:<input type="file" name="url"><br/>
性别:
<input type="radio" name="sex" value="1">男
<input type="radio" name="sex" value="0">女<br/>
爱好:
<input type="checkbox" name="hobby" value="敲代码">敲代码
<input type="checkbox" name="hobby" value="背理论">背理论
<input type="checkbox" name="hobby" value="抄作业">抄作业<br/>
生日:<input type="date" name="time"><br>
专业方向:<select name="did" id="did">
<option value="">-请选择-</option>
<c:forEach items="${ff}" var="f">
<option value="${f.id}">${f.name}</option>
</c:forEach>
</select><br/>
责任人:<input type="text" name="bname" id="bname"><br/>
<input type="submit" value="确定添加">
</form>
<script>
var aa=false;
$("#name").blur(function () {
var name = $("#name").val();
$.post("AjaxServlet",{"name":name},function (data) {
if (data=="no"){
$("#span1").html("名字不能重复");
aa=false;
} else{
$("#span1").html("可以使用");
aa=true;
}
});
});
$("#did").change(function () {
var did = $("#did").val();
$.post("YiServlet",{"did":did},function (data) {
$("#bname").val(data);
})
});
$("form").submit(function () {
return aa;
})
</script>
</body>
</html>
逻辑删除根据dao层的delete
package com.jy.servlet;
import com.jy.pojo.Dept;
import com.jy.pojo.Student;
import com.jy.service.StudentService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/DeleteServlet")
public class DeleteServlet extends HttpServlet {
StudentService st=new StudentService();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决乱码
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
//根据前端获取数据
String[] ids = request.getParameterValues("id");
//调用方法
for (String id : ids) {
st.delete(id);
}
//重定向到查询所有
response.sendRedirect("ShowAllServlet");
}
}
逻辑批量删除前端交互在
<input type="button" id="de" value="删除">
修改需要现将数据展示出来 称为回显
回显的servlet层代码
package com.jy.servlet;
import com.jy.pojo.Dept;
import com.jy.pojo.Student;
import com.jy.service.StudentService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/ByIdServlet")
public class ByIdServlet extends HttpServlet {
StudentService st=new StudentService();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决乱码
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
//根据前端获取数据
String id = request.getParameter("id");
//调用方法
Student student = st.byId(id);
//将查询结果存入域中
request.setAttribute("st",student);
//转发给show
request.getRequestDispatcher("update.jsp").forward(request,response);
}
}
修改的改代码跟添加大同小异
package com.jy.servlet;
import com.jy.pojo.Student;
import com.jy.service.StudentService;
import org.apache.commons.beanutils.BeanUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.Map;
@MultipartConfig
@WebServlet("/UpdateServlet")
public class UpdateServlet extends HttpServlet {
StudentService st=new StudentService();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决乱码
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
//根据前端获取数据
Map<String, String[]> map = request.getParameterMap();
//创建对象
Student stu = new Student();
try {
//将集合数据给到对象中
BeanUtils.populate(stu,map);
//处理爱好
String[] hobbies = request.getParameterValues("hobby");
//将数组转换为字符串
String hobby = Arrays.toString(hobbies);
stu.setHobby(hobby);
//获取图片
Part url = request.getPart("tp");
//判断是否获取到图片
if (url.getSize()>0){
//获取图片名
String fileName = url.getSubmittedFileName();
//将图片名传入对象
stu.setUrl(fileName);
//获取项目内存放图片的路劲
String path = request.getServletContext().getRealPath("/images/");
//将图片存入项目内
url.write(path+fileName);
}
//调用方法
st.update(stu);
//重定向到查询所有
response.sendRedirect("ShowAllServlet");
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
修改的前端代码
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: 27188
Date: 2023/12/14
Time: 15:28
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>修改页面</title>
<script src="js/jquery-1.7.2.js"></script>
</head>
<body>
<form action="UpdateServlet" method="post" enctype="multipart/form-data">
<input type="hidden" name="id" value="${st.id}">
<input type="hidden" name="url" value="${st.url}">
学生名:<input type="text" name="name" id="name" value="${st.name}">
<span id="span1"></span>
<br/>
年龄:<input type="text" name="age" value="${st.age}"><br/>
头像:<img src="images/${st.url}" width="100px"><input type="file" name="tp"><br/>
性别:
<input type="radio" name="sex" value="1"
<c:if test="${st.sex==1}">checked</c:if>
>男
<input type="radio" name="sex" value="0"
<c:if test="${st.sex==0}">checked</c:if>
>女<br/>
爱好:
<input type="checkbox" name="hobby" value="敲代码"
<c:if test="${st.hobby.contains('敲代码')}">checked</c:if>
>敲代码
<input type="checkbox" name="hobby" value="背理论"
<c:if test="${st.hobby.contains('背理论')}">checked</c:if>
>背理论
<input type="checkbox" name="hobby" value="抄作业"
<c:if test="${st.hobby.contains('抄作业')}">checked</c:if>
>抄作业<br/>
生日:<input type="date" name="time" value="${st.time}"><br>
专业方向:<select name="did" id="did">
<option value="">-请选择-</option>
<c:forEach items="${ff}" var="f">
<option value="${f.id}"
<c:if test="${st.did==f.id}">selected</c:if>
>${f.name}</option>
</c:forEach>
</select><br/>
责任人:<input type="text" name="bname" id="bname" value="${st.bname}"><br/>
<input type="submit" value="确定修改">
</form>
<script>
var aa=true;
$("#name").blur(function () {
var name = $("#name").val();
$.post("AjaxServlet",{"name":name},function (data) {
if (data=="no"){
$("#span1").html("名字不能重复");
aa=false;
} else{
$("#span1").html("可以使用");
aa=true;
}
});
});
$("#did").change(function () {
var did = $("#did").val();
$.post("YiServlet",{"did":did},function (data) {
$("#bname").val(data);
})
});
$("form").submit(function () {
return aa;
})
</script>
</body>
</html>