当前位置: 首页 > 编程日记 > 正文

易买网的一些增删改查

正如题目所说的一样,今天就来说说易买网中的一些增删改查,主要的功能有注册、用户管理以及商品分类等!

1.注册

1.1 注册涉及到了一个ajax远端技术,主要是用来控制注册用户在数据库中是否存在:

 <script>$(function(){//焦点移出表单时$("#userId").blur(function(){ajax();});});function ajax(){//获取用户名var uname=$("#userId").val();if(uname!=""){$.ajax({url:'<%=path%>/servlet/DuCheckDoc',type:'POST',data:'name='+uname,//data是从servlet回送的内容
            success:function(data){if(data=="true"){$("#msg").html("不能注册,该用户名已存在").addClass("error");}else{$("#msg").html("可以注册,用户名尚未被注册").addClass("error");}   }  });   }             }
</script>

需要发送到下面这个servlet去判定是否存在

package servlet;import java.io.IOException;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import dao.impl.UserNameImpl_wjl;
import entity.User;public class DuCheckDoc extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}//ajax的远端控制public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//解决中文乱码request.setCharacterEncoding("utf-8");//实现usernameimpl类的对象UserNameImpl_wjl impl=new UserNameImpl_wjl();String uName=request.getParameter("name");//String uName="admin111";String msg=null;if (uName!=null) {try {List<User> list=impl.getUserName();for (User user : list) {if (uName.equals(user.getUserId())) {msg="true";break;}else {msg="false";}}                    } catch (Exception e) {// 异常抓取
                    e.printStackTrace();}}response.getWriter().print(msg);}}

1.2 注册还有一个自己的servlet

package servlet;import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.sql.Date;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import dao.impl.Registerimpl_wjl;
import entity.User;public class RegisterServelt_wjl extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//处理乱码request.setCharacterEncoding("utf-8");Registerimpl_wjl rdao=new Registerimpl_wjl();String userId=request.getParameter("userId");String userName=request.getParameter("userName");String password=request.getParameter("password");//String confirmPassword=request.getParameter("confirmPassword");String sex=request.getParameter("sex");String flag="T";if (sex.equals("male")){flag="F";}String btime=request.getParameter("birthday");//转化为日期SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");Date date = null;try {date=new Date(format.parse(btime).getTime());} catch (ParseException e1) {// TODO Auto-generated catch block
                e1.printStackTrace();}String identityCode=request.getParameter("identityCode");String email=request.getParameter("email");String mobile=request.getParameter("mobile");String address=request.getParameter("address");User user=new User();user.setAddress(address);user.setUserId(userId);user.setUserName(userName);user.setEmail(email);user.setMale(flag);user.setIdentityCode(identityCode);user.setPassword(password);user.setMobile(mobile);user.setBirthday(date);boolean result=rdao.addRegister(user);if (result) {request.getRequestDispatcher("/reg-result.jsp").forward(request, response);}else{response.sendRedirect("/EasyBuy_H/register.jsp");}}}

注册sql语句

public boolean addRegister(User user) {//insert into EASYBUY_USER values//('杰克','普通用户','ss','T','1983-02-14','130406198302141869',//'hello@bdqn.com','15812345678','北京市海淀区成府路207号','1',DEFAULT)String sql="insert into EASYBUY_USER values(?,?,?,?,?,?,?,?,?,?,default)";Object[] paras={user.getUserId(),user.getUserName(),user.getPassword(),user.getMale(),user.getBirthday(),user.getIdentityCode(),user.getEmail(),user.getMobile(),user.getAddress(),user.getStatus()};return executeUpdate(sql, paras);}

2.用户管理

2.1 根据上面的注册用户,新注册用户就会添加到用户管理中,

2.2 用户管理的增删改查sql语句

 //利用分页进行查询出整个表public List<User> getAllUser(int pageIndex,int pageSize) throws Exception {List<User> list=new ArrayList<User>();String sql="select top "+pageSize+" * from EASYBUY_USER where identity_ID not in(select top "+(pageIndex-1)*pageSize+" identity_ID from EASYBUY_USER)";ResultSet rs=executeSelect(sql);if (rs!=null) {while(rs.next()){User user=new User();user.setId(rs.getInt("identity_ID"));user.setUserId(rs.getString("EU_USER_ID"));user.setUserName(rs.getString("EU_USER_NAME"));user.setMale(rs.getString("EU_SEX"));user.setEmail(rs.getString("EU_EMAIL"));user.setMobile(rs.getString("EU_MOBILE"));user.setBirthday(rs.getDate("EU_BIRTHDAY"));user.setAddress(rs.getString("EU_ADDRESS"));user.setPassword(rs.getString("EU_PASSWORD"));list.add(user);}}return list;}//按用户id查询public List<User> getAllUserToUserId(int id) throws Exception {List<User> list=new ArrayList<User>();String sql="select * from EASYBUY_USER where identity_ID=?";Object[] paras={id};ResultSet rs=executeSelect(sql,paras);if (rs!=null) {while(rs.next()){User user=new User();user.setUserId(rs.getString("EU_USER_ID"));user.setUserName(rs.getString("EU_USER_NAME"));user.setMale(rs.getString("EU_SEX"));user.setEmail(rs.getString("EU_EMAIL"));user.setMobile(rs.getString("EU_MOBILE"));user.setBirthday(rs.getDate("EU_BIRTHDAY"));user.setAddress(rs.getString("EU_ADDRESS"));user.setPassword(rs.getString("EU_PASSWORD"));list.add(user);}}return list;}//修改用户信息public boolean getAllToUpdate(User user) throws Exception {String sql="update EASYBUY_USER set EU_USER_ID=?,EU_USER_NAME=?,EU_SEX=?,EU_MOBILE=?,EU_ADDRESS=?,EU_PASSWORD=?,EU_BIRTHDAY=? where identity_ID=?";Object[] paras={user.getUserId(),user.getUserName(),user.getMale(),user.getMobile(),user.getAddress(),user.getPassword(),user.getBirthday(),user.getId()};return executeUpdate(sql,paras);}//按用户编号删除用户public boolean getAllToDelete(int id) {String sql="delete from EASYBUY_USER where identity_ID=?";Object[] paras={id};return executeUpdate(sql, paras);}//总记录数public int getAllCount() throws Exception {String sql="select COUNT(1) as num from EASYBUY_USER";ResultSet rs=executeSelect(sql);int result=0;if (rs!=null) {while(rs.next()){result=rs.getInt("num");}}return result;}

2.3 用户管理的servlet

package servlet;import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import util.Page_hyj;import dao.impl.Registerimpl_wjl;
import entity.News;
import entity.User;public class UpdateUserServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}/*** 修改用户信息 */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//处理乱码request.setCharacterEncoding("utf-8");Registerimpl_wjl impl=new Registerimpl_wjl();String opr=request.getParameter("opr");if (opr.equals("list")) {try{// 开始分页// 实例化Page对象Page_hyj page_hyj = new Page_hyj();// .给定每页要显示几条数据int pagesize=3;page_hyj.setPageSize(pagesize);// .给总页数赋值int pageSum=0;//总记录数int total=impl.getAllCount();if (total%pagesize==0) {pageSum=total/pagesize;}else {pageSum=total/pagesize+1;}page_hyj.setPageCount(pageSum);// 当用户还没有点击下一页是默认显示第一页数据int pageIndex = 1;// 获取下一页超链接设置的pageIndex的值String uindex = request.getParameter("pageIndex");if (uindex != null) {// 给page类中的pageIndex赋值:(uindex不为空的时候就证明了用户点击了下一页,随之页面显示的数据也就改变了)pageIndex = Integer.parseInt(uindex);}//判断是否符合显示条件if (pageIndex<1) {pageIndex=1;}else if (pageIndex>page_hyj.getPageCount()) {pageIndex=page_hyj.getPageCount();}//当前页数
                page_hyj.setPageIndex(pageIndex);// 给集合赋值
                page_hyj.setListu(impl.getAllUser(page_hyj.getPageIndex(),page_hyj.getPageSize()));// 设置作用域request.setAttribute("pageIndex", pageIndex);request.setAttribute("page", page_hyj);request.getRequestDispatcher("/manage/user.jsp").forward(request, response);} catch (Exception e) {// 异常抓取
                e.printStackTrace();}}                                           //点击修改将数据加载到用户修改界面if (opr.equals("update")) {String userid=request.getParameter("id");int id=0;if (!userid.equals("")&&userid!=null) {id=Integer.parseInt(userid);}List<User> listf = null;try {listf = impl.getAllUserToUserId(id);request.setAttribute("id",id);request.setAttribute("listf",listf);} catch (Exception e) {// 异常抓取
                e.printStackTrace();}request.getRequestDispatcher("/manage/user-modify.jsp").forward(request, response);}}}
package servlet;import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.sql.Date;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import dao.impl.Registerimpl_wjl;
import entity.User;public class UpdateUserInfoServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}/*** 修改用户信息 */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//处理乱码request.setCharacterEncoding("utf-8");//调度 实例化  对象Registerimpl_wjl impl=new Registerimpl_wjl();String opr=request.getParameter("opr");//修改if (opr.equals("update")) {String id=request.getParameter("sid");//用户名String nameid=request.getParameter("userName");//真实姓名String name=request.getParameter("name");//密码String passWord=request.getParameter("passWord");//性别String male=request.getParameter("sex");//出生日期String byear=request.getParameter("birthday");//转化为日期SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd");Date date =null;User us=new User();try {date=new Date(sim.parse(byear).getTime());us.setBirthday(date);} catch (ParseException e1) {// 抓取异常
                    e1.printStackTrace();}//手机String mobile=request.getParameter("mobile");//地址String address=request.getParameter("address");us.setId(Integer.parseInt(id));us.setUserId(nameid);us.setUserName(name);us.setPassword(passWord);us.setMale(male);us.setMobile(mobile);us.setAddress(address);us.setStatus(1);try {boolean flag=impl.getAllToUpdate(us);if (flag) {//转到更新界面request.getRequestDispatcher("/manage/manage-result.jsp").forward(request, response);}else {//重定向到用户管理界面在重新选择response.sendRedirect("/EasyBuy_H/manage/user.jsp");}} catch (Exception e) {// 异常抓取
                e.printStackTrace();}}//获取当前页数int pageIndex=1;String uindex=request.getParameter("pageIndex");if (uindex!=null) {pageIndex = Integer.parseInt(uindex);}//删除if (opr.equals("del")) {String userid=request.getParameter("id");int uid=0;if (userid!=null&&!(userid.equals(""))) {uid=Integer.parseInt(userid);}boolean flag=impl.getAllToDelete(uid);if (flag) {//成功转发request.getRequestDispatcher("/servlet/UpdateUserServlet?opr=list&pageIndex="+pageIndex).forward(request, response);    }else{//失败转发response.getWriter().print("<script type='text/javascript'>"+ "alert('删除失败');"+"location.href='"+request.getContextPath() + "/servlet/UpdateUserServlet?opr=list&pageIndex="+pageIndex+"';"+ "</script>"); }}}}

2.4 在jsp中通过作用域转发过来的数据

2.4.1 用户管理的显示界面、删除界面

<div class="main"><h2>用户管理</h2><div class="manage"><table class="list"><tr><th>用户名</th><th>真实姓名</th><th>性别</th><th>Email</th><th>手机</th><th>操作</th></tr><c:forEach items="${page.listu}" var="item"><tr><td class="first w4 c">${item.userId}</td><td class="w1 c">${item.userName}</td><td class="w2 c"><c:choose><c:when test="${item.male eq 'T'}"></c:when><c:when test="${item.male eq 'F'}"></c:when></c:choose></td><td>${item.email}</td><td class="w4 c">${item.mobile}</td><td class="w1 c"><a href="<%=path %>/servlet/UpdateUserServlet?opr=update&id=${item.id}">修改</a> <a id="manageDel" href="<%=path %>/servlet/UpdateUserInfoServlet?id=${item.id}&opr=del&pageIndex=${pageIndex}">删除</a></td></tr></c:forEach></table></div></div><div class="clear"></div><div class="pager"><ul class="clearfix">                    <li><a href="<%=path%>/servlet/UpdateUserServlet?opr=list&pageIndex=1">首页</a></li><li class="current"><a href="<%=path%>/servlet/UpdateUserServlet?opr=list&pageIndex=${page.pageIndex-1}">上一页</a></li><li>${page.pageIndex}/${page.pageCount}</li><li class="current"><a href="<%=path%>/servlet/UpdateUserServlet?opr=list&pageIndex=${page.pageIndex+1}">下一页</a></li><li><a href="<%=path%>/servlet/UpdateUserServlet?opr=list&pageIndex=${page.pageCount}">尾页</a></li></ul></div></div>

2.4.2 修改界面

<form action="<%=path %>/servlet/UpdateUserInfoServlet?opr=update&sid=${id}" method="post"><c:forEach items="${listf}" var="item"><table class="form"><tr><td class="field">用户名(*):</td><td><input type="text" class="text" name="userName" value="${item.userId}" readonly="readonly" /></td></tr><tr><td class="field">真实姓名(*):</td><td><input type="text" class="text" name="name" value="${item.userName}" /></td></tr><tr><td class="field">登录密码(*):</td><td><input type="text" class="text" name="passWord" value="${item.password}" /></td></tr><tr><td class="field">确认密码(*):</td><td><input type="text" class="text" name="passWord" value="${item.password}" /></td></tr><tr><td class="field">性别(*):</td><td><c:choose><c:when test="${item.male eq 'T'}"><input type="radio" name="sex" value="T" checked="checked" /><input type="radio" name="sex" value="F" /></c:when><c:otherwise><input type="radio" name="sex" value="T"  /><input type="radio" name="sex" value="F" checked="checked"/></c:otherwise></c:choose></td>  </tr><tr><td class="field">出生日期:</td><td><input id="birthday" class="text" type="text" name="birthday" value="${item.birthday}"/><span></span></td></tr><tr><td class="field">手机(*):</td><td><input type="text" class="text" name="mobile" value="${item.mobile}" /></td></tr><tr><td class="field">地址(*):</td><td><input type="text" class="text" name="address" value="${item.address}" /></td></tr>                    <tr><td></td><td><label class="ui-blue"><input type="submit" name="submit" value="更新" /></label></td></tr></table></c:forEach></form>

3. 商品分类

3.1 用于显示

       //解决中文乱码问题request.setCharacterEncoding("utf-8");//查询商品分类的对象ProoductCategoryDaoImpl_hyj impl=new ProoductCategoryDaoImpl_hyj();ProductImpl_wjl dao=new ProductImpl_wjl();String opr=request.getParameter("opr");if (opr.equals("listinfo")) {try {//List<ProductCategory> listfrist=impl.getAllOneLeveInfo(0);List<ProductCategory> listsecond=impl.getAllTowLeveInfo(0);//request.setAttribute("levellist",listfrist);request.setAttribute("levelslist",listsecond);// 开始分页// 实例化Page对象Page_hyj page_hyj = new Page_hyj();// .给定每页要显示几条数据int pagesize=1;page_hyj.setPageSize(pagesize);// .给总页数赋值int pageSum=0;//总记录数int total=dao.getAllCount();if (total%pagesize==0) {pageSum=total/pagesize;}else {pageSum=total/pagesize+1;}page_hyj.setPageCount(pageSum);// 当用户还没有点击下一页是默认显示第一页数据int pageIndex = 1;// 获取下一页超链接设置的pageIndex的值String uindex = request.getParameter("pageIndex");if (uindex != null) {// 给page类中的pageIndex赋值:(uindex不为空的时候就证明了用户点击了下一页,随之页面显示的数据也就改变了)pageIndex = Integer.parseInt(uindex);}//判断是否符合显示条件if (pageIndex<1) {pageIndex=1;}else if (pageIndex>page_hyj.getPageCount()) {pageIndex=page_hyj.getPageCount();}//当前页数
                page_hyj.setPageIndex(pageIndex);// 给集合赋值
                page_hyj.setListc(dao.getAllTowLeveInfo(page_hyj.getPageIndex(),page_hyj.getPageSize()));// 设置作用域request.setAttribute("pageIndex",pageIndex);request.setAttribute("page", page_hyj);request.getRequestDispatcher("/manage/productClass.jsp").forward(request,response);} catch (Exception e) {// TODO Auto-generated catch block
                e.printStackTrace();}}//修改将数据加载到修改页面if (opr.equals("update")) {String id=request.getParameter("id");String epcid=request.getParameter("epcid");try {List<ProductCategory> listfrist=impl.getAllOneLeveInfo(0);request.setAttribute("levellist",listfrist);            request.setAttribute("rid",id);List<ProductCategory> listsecond = impl.getAllTowLeveInfo(0);request.setAttribute("levelslist",listsecond);request.setAttribute("epcid",epcid);request.getRequestDispatcher("/manage/productClass-modify.jsp").forward(request,response);} catch (Exception e) {// TODO Auto-generated catch block
                    e.printStackTrace();}}//新增二级分类if (opr.equals("add")) {try {List<ProductCategory> listfrist=impl.getAllOneLeveInfo(0);request.setAttribute("levellist",listfrist);            request.getRequestDispatcher("/manage/productClass-add.jsp").forward(request,response);} catch (Exception e) {// 错误异常
                    e.getMessage();}}

3.2 返回list泛型的dao方法

public List<ProductCategory> getAllTowLeveInfo(int epcid)throws Exception {List<ProductCategory> list=new ArrayList<ProductCategory>();String sql="";ResultSet rs=null;if(epcid==0){sql+="select EPC_ID,EPC_NAME ,EPC_PARENT_ID from EASYBUY_PRODUCT_CATEGORY where EPC_ID!=EPC_PARENT_ID";rs= executeSelect(sql);}else{sql+="select * from EASYBUY_PRODUCT_CATEGORY where EPC_ID=?";Object[] paObjects={epcid};rs= executeSelect(sql,paObjects);}if(rs!=null){while(rs.next()){ProductCategory pc=new ProductCategory();pc.setId(rs.getInt("EPC_ID"));pc.setName(rs.getString("EPC_NAME"));pc.setParentId(rs.getInt("EPC_PARENT_ID"));list.add(pc);}}closeAll();return list;}

3.3  执行具体的修改以及删除

public class ProductSonServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}/*** 修改单个选中商品分类*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//解决中文乱码问题request.setCharacterEncoding("utf-8");response.setContentType("text/html; charset=utf-8");//查询商品分类的对象ProductImpl_wjl dao=new ProductImpl_wjl();String opr=request.getParameter("opr");//点击修改 将数据加载到商品分类中if (opr.equals("updateName")) {System.out.println(opr);String name=request.getParameter("className"); //获取商品分类名称String parentId=request.getParameter("parentId");//一级分类的选中数据//二级分类String sid=request.getParameter("sid");int parentid=0;if (parentId!=null&&(!parentId.equals(""))){parentid=Integer.parseInt(parentId);}ProductCategory pro=new ProductCategory();pro.setId(Integer.parseInt(sid));pro.setName(name);pro.setParentId(parentid);boolean flag=dao.getProductToEpcid(pro);if (flag) {request.getRequestDispatcher("/manage/manage-result.jsp").forward(request,response);}} //获取选中条的epcidString id=request.getParameter("epcid");int epcid=0;if (id!=null&&(!id.equals(""))) {epcid=Integer.parseInt(id);}//获取当前页数int pageIndex=1;String uindex=request.getParameter("pageIndex");if (uindex != null) {pageIndex = Integer.parseInt(uindex);}//删除子类if (opr.equals("delete")) {try {int count=dao.getCountTwo(epcid);String name=dao.twoName(epcid);if (count<1) {boolean flag=dao.delProductToEpcid(epcid);if (flag) {request.getRequestDispatcher("/servlet/ProductServletInfo_wjl?opr=listinfo&pageIndex="+pageIndex).forward(request,response);}}else{response.getWriter().print("<script type='text/javascript'>"+ "alert('当前"+name+"二级分类下还有商品,暂时不能删除该类');"+"location.href='"+request.getContextPath() + "/servlet/ProductServletInfo_wjl?opr=listinfo&pageIndex="+pageIndex+"';"+ "</script>"); }} catch (Exception e) {// TODO Auto-generated catch block
                    e.printStackTrace();}}//点击删除父类if (opr.equals("del")) {try {int count=dao.getHaveSons(epcid);String name=dao.parentName(epcid);if (count>1) {System.out.println(name);response.getWriter().print("<script type='text/javascript'>"+ "alert('当前"+name+"分类下还有子类');"+"location.href='"+request.getContextPath() + "/servlet/ProductServletInfo_wjl?opr=listinfo&pageIndex="+pageIndex+"';"+ "</script>"); }else{boolean flag=dao.delAllProduct(epcid);if (flag) {request.getRequestDispatcher("/servlet/ProductServletInfo_wjl?opr=listinfo&pageIndex="+pageIndex).forward(request,response);}}} catch (Exception e) {// TODO Auto-generated catch block
                    e.printStackTrace();}}//新增二级分类if (opr.equals("addinfo")) {String parentId=request.getParameter("parentId");String className=request.getParameter("className");//一级分类idint pid=0;//二级分类idint sid=0;try {if (parentId!=null&&(!parentId.equals(""))) {pid=Integer.parseInt(parentId);}ProductCategory pro=new ProductCategory();pro.setName(className);pro.setParentId(pid);boolean flag=dao.addOneClass(pro);if (pid==0) {System.out.println("新增一级分类");List<ProductCategory> list=dao.getAllTowLeveInfo();for (ProductCategory item : list) {sid=item.getId();}pro.setId(sid);flag=dao.addParentClass(pro);}if (flag) {request.getRequestDispatcher("/manage/manage-result.jsp").forward(request,response);}} catch (Exception e) {// TODO Auto-generated catch block
                    e.printStackTrace();}}}}

3.4  jsp界面转发回来

3.4.1 显示、删除的jsp

<div class="main"><h2>分类管理</h2><div class="manage"><table class="list"><tr><th>编号</th><th>分类名称</th><th>操作</th></tr><c:forEach items="${page.listc}" var="item"><tr><td class="first w4 c">${item.id}</td><td>${item.name}</td><td class="w1 c"><a href="<%=path %>/servlet/ProductServletInfo_wjl?opr=update&&id=${item.id}&epcid=${item.id}">修改</a><a class="manageDel" href="<%=path %>/servlet/ProductSonServlet?opr=del&epcid=${item.parentId}&pageIndex=${pageIndex}">删除</a></td></tr><c:forEach items="${levelslist}" var="itemSon"><c:choose><c:when test="${item.parentId eq itemSon.parentId }"><tr><td class="first w4 c">${itemSon.id}</td><td class="childClass">${itemSon.name}</td><td class="w1 c"><a href="<%=path %>/servlet/ProductServletInfo_wjl?opr=update&id=${itemSon.parentId}&epcid=${itemSon.id}">修改</a> <a class="manageDel" href="<%=path %>/servlet/ProductSonServlet?opr=delete&epcid=${itemSon.id}&pageIndex=${pageIndex}">删除</a></td></tr></c:when></c:choose></c:forEach></c:forEach></table></div><div></div></div><div class="clear"></div><div class="pager"><ul class="clearfix"><li><a href="<%=path%>/servlet/ProductServletInfo_wjl?opr=listinfo&&pageIndex=1">首页</a></li><li><a href="<%=path%>/servlet/ProductServletInfo_wjl?opr=listinfo&&pageIndex=${page.pageIndex-1}">上一页</a></li><li>${page.pageIndex}/${page.pageCount}</li><li><a href="<%=path%>/servlet/ProductServletInfo_wjl?opr=listinfo&&pageIndex=${page.pageIndex+1}">下一页</a></li><li><a href="<%=path%>/servlet/ProductServletInfo_wjl?opr=listinfo&&pageIndex=${page.pageCount}">尾页</a></li></ul></div></div>

3.4.2 执行修改

<div class="main"><h2>修改分类</h2><div class="manage"><form action="<%=path %>/servlet/ProductSonServlet?opr=updateName&sid=${epcid}" method="post"><table class="form"><tr><td class="field">父分类:</td>    <td><select name="parentId"><c:forEach items="${levellist}" var="item"><c:if test="${item.id eq rid}"><option value="${item.id}" selected="selected">${item.name}</option></c:if><c:if test="${item.id != rid}"><option value="${item.id}">${item.name}</option></c:if></c:forEach></select></td></tr><tr><td class="field">分类名称:</td><c:forEach items="${levellist}" var="item"><c:if test="${item.id eq epcid}"><td><input type="text" class="text" name="className" value="${item.name}" /></td></c:if></c:forEach><c:forEach items="${levelslist}" var="items"><c:if test="${items.parentId eq rid}"><c:if test="${items.id eq epcid}"><td><input type="text" class="text" name="className" value="${items.name}" /></td></c:if></c:if></c:forEach></tr><tr><td></td><td><label class="ui-blue"><input type="submit" name="submit" value="更新" /></label></td></tr></table></form></div></div><div class="clear"></div></div>

3.4.3 执行新增的jsp界面

<div class="main"><h2>添加分类</h2><div class="manage"><form action="<%=path %>/servlet/ProductSonServlet?opr=addinfo" method="post"><table class="form"><tr><td class="field">父分类:</td><td><select name="parentId"><option value="0" selected="selected">根栏目</option><c:forEach items="${levellist}" var="item">                                <option value="${item.parentId}">${item.name}</option></c:forEach></select></td></tr><tr><td class="field">分类名称:</td><td><input type="text" class="text" name="className" value="" /></td></tr><tr><td></td><td><label class="ui-blue"><input type="submit" name="submit" value="新增" /></label></td></tr></table></form></div></div><div class="clear"></div></div>

好了,功能暂时就这么多了,如有不足之处,请多多提出你的建议,谢谢。

转载于:https://www.cnblogs.com/bdpsc/p/5714096.html

相关文章:

iOS后台持续定位并定时上传

最近做一个考勤APP&#xff0c;功能很简单&#xff0c;就是一直在后台运行&#xff0c;每隔固定时间向服务器上传一次位置信息。持续运行24小时测试&#xff0c;功能实现。 1.ViewController.h文件&#xff1a; #import <CoreLocation/CoreLocation.h>并实现CLLocationMa…

jQuery UI vs Kendo UI jQuery Mobile vs Kendo UI Mobile

jQuery UI vs Kendo UI http://jqueryuivskendoui.com/#introduction jQuery Mobile vs Kendo UI Mobile http://jqueryuivskendoui.com/#mobile-introduction Kendo UI教程 http://www.cnblogs.com/pangblog/archive/2013/09/10/3313135.html转载于:https://www.cnblogs.com/j…

Oracle的基本操作(二:存储过程)

1、编写一个存储过程&#xff0c;根据输入的工作类型&#xff0c;输入该工作的平均工资。 -- Created on 2018/9/30 by YANXUKUNcreate or replace procedure avgsal(v_job in scott.emp.job%type)isavgsal2 number;beginselect avg(sal) into avgsal2 from scott.emp where j…

web11 Struts处理表单数据

电影网站&#xff1a;www.aikan66.com 项目网站&#xff1a;www.aikan66.com 游戏网站&#xff1a;www.aikan66.com 图片网站&#xff1a;www.aikan66.com 书籍网站&#xff1a;www.aikan66.com 学习网站&#xff1a;www.aikan66.com Java网站&#xff1a;www.aikan66.co…

瀑布流开源这两天

想必第一眼看到 Masonery 效果的人们会和当初的我有同样的感觉&#xff0c;惊艳&#xff01;尤其是在你双击浏览器标题栏的空白处之后&#xff0c;所有的区块都在默默寻找自己的位置&#xff0c;无论大小&#xff0c;就像上海虹桥火车站涌入地铁的人群。和技术实现无关&#xf…

iOS网络请求总结

*说明&#xff1a;文章中HTTP为宏定义的http地址&#xff0c;事例通过app_login.action的接口&#xff0c;通过传递policyNum、plateNum、phoneNum三个参数进行登录操作 一、方法1&#xff1a; Foundation框架 NSURLConnection &#xff08;1&#xff09;同步请求&#xff1a;同…

MongoDB数据库(一:基本操作)

1、创建名称为自己姓名拼音缩写的数据库&#xff1b; 2、创建名为姓名拼音缩写col的集合&#xff0c;如dugncol&#xff1b; 3、删除2中的集合&#xff0c;重新创建格式如dugncolnew的集合&#xff1b; 4、在3创建的集合中&#xff0c;插入10条文档数据&#xff0c;要求分别插入…

NYOJ--811--变态最大值

/*Name: NYOJ--811--变态最大值Author: shen_渊 Date: 17/04/17 15:49Description: 看到博客上这道题浏览量最高&#xff0c;原来的代码就看不下去了 o(╯□╰)o */#include<cstring> #include<iostream> #include<algorithm> using namespace std; struct…

扩展的八皇后问题

百度百科&#xff1a;八皇后问题是一个古老而著名的问题&#xff0c;是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯贝瑟尔于1848年提出&#xff1a;在8X8格的国际象棋上摆放八个皇后&#xff0c;使其不能互相攻击&#xff0c;即任意两个皇后都不能处于同一行、同一列或同…

C++ 常用函数方法

/* * 拆分字符串 * 参数&#xff1a; * strData 字符串 * split 分隔符 * 返回&#xff1a; * 返回动态数组std::vector<std::string> ,记得要delete 内存 */ std::vector<std::string>* GetStringArray(char* strData,char* split)…

MongoDB数据库(二:高级操作)

练习一、完成使用Java代码连接MOngoDB&#xff0c;创建集合&#xff0c;获取集合&#xff0c;插入文档&#xff0c;检 索所有文档&#xff0c;更新文档&#xff0c;删除第一个文档。 a&#xff09;连接MOngoDB b)创建集合 c)获取集合 d)插入文档 e)检索所有文档 f)更新文档 g)…

将XML转为HTML

文章参考&#xff1a;http://dreamweaver.abang.com/od/html/a/xml2html3.htm http://www.w3school.com.cn/xml/xml_xsl.asp ParseXML2HTML.xsl&#xff1a;代码如下 1 <?xml version"1.0" encoding"utf-8"?> 2 <xsl:styleshee…

Linux运维相关目录

Linux——相关运维配置文档目录 tcp 三次握手yum 配置你对linux了解多少&#xff0c;Linux 系统结构详解&#xff01;Linux LAMP环境搭建Centos6.7安装Apache2.4Mysql5.6Apache2.4Linux搭建DNS服务器Nginx概念及基础安装--详细讲解深入NginxNginx的继续深入&#xff08;日志轮询…

iOS8底部弹出日期选择或自定义选择器的方法

本文需要实现的日期选择器和自定义选择器效果如下&#xff1a; 在iOS8之前&#xff0c;可以通过UIActionSheet来实现&#xff0c;在iOS8之后&#xff0c;可以通过UIAlertController实现&#xff0c;UIAlertController的官方解释如下&#xff1a; A UIAlertController object d…

HDFS_API基本应用

实验 目的 要求 目的&#xff1a; 了解HDFS文件系统&#xff1b;掌握HDFS的架构及核心组件的职能&#xff1b;掌握HDFS数据的读写操作&#xff1b;HDFS常用操作&#xff08;Shell。Java API&#xff09;了解Hadoop2.0中HDFS相关的新特性 实 验 环 境 Java jdk 1.8&…

Docker 清理命令集锦

杀死所有正在运行的容器 复制代码代码如下:docker kill $(docker ps -a -q)删除所有已经停止的容器 复制代码代码如下:docker rm $(docker ps -a -q)删除所有未打 dangling 标签的镜像 复制代码代码如下:docker rmi $(docker images -q -f danglingtrue)删除所有镜像 复制代码代…

CentOS 6.4下编译安装MySQL 5.6.14

概述&#xff1a; CentOS 6.4下通过yum安装的MySQL是5.1版的&#xff0c;比较老&#xff0c;所以就想通过源代码安装高版本的5.6.14。 正文&#xff1a; 一&#xff1a;卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉…

iOS实现图片自动轮播展示

一、需要实现的效果如下图1&#xff0c;首页图片自动轮播展示&#xff0c;其中图片从网络异步加载&#xff0c;加载过程用风火轮显示加载中&#xff0c;如图2。 本文参考了以下博客文章&#xff1a; http://www.haodaima.net/art/2687144 http://www.cnblogs.com/xiaobaizhu/a…

Hadoop_MapReduce的基本应用

实验 目的 要求 目的&#xff1a; 了解MapReduce掌握MapReduce编程模型掌握MapReduce常见核心API编程MapReduce开发常用功能 实 验 环 境 Java jdk 1.8&#xff1b;apache-maven-3.6.0&#xff1b;Myeclipse C10&#xff1b;Hadoop集群&#xff1b;练习内容 任务一&…

Android源码编译过程之九鼎开发板

1 build_kernel()2 {3 # 进入源码顶层目录4 cd ${BS_DIR_KERNEL} || return 15 # 编译配置文件6 make ${BS_CONFIG_KERNEL} ARCHarm CROSS_COMPILE${BS_CROSS_TOOLCHAIN_KERNEL} || return 17 # 编译内核uImage&#xff08;arm架构、交…

eaccelerator 完全手册:配置、控制、API接口

安装官方有很详细的文档 转自 http://www.enjoyphp.com/2010/eaccelerator-manual/ 配置选项 eaccelerator.shm_size指定 eAccelerator 能够使用的共享内存数量&#xff0c;单位: MB. “0″ 代表操作系统默认。默认值为 “0″。 eaccelerator.cache_dir用户磁盘缓存的目录。eAc…

iOS解决键盘阻挡输入框

解决思路&#xff1a;有时用户编辑输入框时&#xff0c;键盘会遮挡输入框&#xff0c;这时候只要将视图整体上移键盘的高度即可&#xff0c;编辑完成后再将视图下移键盘的高度恢复正常显示。 【方法1】 实现UITextField代理UITextFieldDelegat的两个方法textFieldShouldBegin…

HBASE_API的应用

实验 目的 要求 目的&#xff1a; 掌握HBase编程&#xff1b;搭建HBase编程环境&#xff1b;配置Myeclipse引入对应的jar包&#xff1b; 实 验 环 境 Java jdk 1.8&#xff1b;apache-maven-3.6.0&#xff1b;Myeclipse C10&#xff1b;Hadoop集群&#…

Linux进程间通信--信号

signal 一、初步理解信号 为了理解信号 ,先从我们最熟悉的场景说起: 1.用户输入命令,在Shell下启动一个前台进程。 2.用户按下Ctrl-C,这个键盘输入产生一个硬件中断。 3.如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到…

如何优化cocos2d程序的内存使用和程序大小:第一部分

译者&#xff1a; 在我完成第一个游戏项目的时候&#xff0c;我深切地意识到“使用cocos2d来制作游戏的开发者们&#xff0c;他们大多会被cocos2d的内存问题所困扰”。而我刚开始接触cocos2d的时候&#xff0c;社区里面的人们讨论了一个非常有意义的话题&#xff1a;“请简单地…

UILayer的一些属性

iOS创建UIView是直接在Core Animation layers上进行绘制&#xff0c;每一个UIView实例都会自动创建CALayer的实例&#xff0c;并且设置为UIView实例的layer属性。 以下事例通过设置UIImageView的layer&#xff0c;实现阴影、圆角、边框和旋转缩放等效果 -(void)initImgView{UI…

Hive的基本应用

实验 目的 要求 目的&#xff1a; 了解Hive架构&#xff0c;掌握Hive环境部署&#xff1b;了解Hive与Hadoop及传统关系型数据库的对比&#xff1b;掌握Hive中DDL和DML的使用&#xff1b;了解Hive高级应用&#xff1b;Hive内置函数使用及Hive自定义函数&#xff1b;了解Hive常…

template

//引入包<script type"text/javascript" src../template.js></script> //定义一个有ID的script标签&#xff1a;<script idtem type"text/html"> <h4>{{name}}</h4> <ul> {{each films as value}} <li> <str…

UICollectionView的基本使用(1)

如果是简单实用UICollectionView的话&#xff0c;用法和UITableView基本一致。下面是用UICollectionView实现的简单图片显示 &#xff08;1&#xff09;打开storyboard&#xff0c;将一个UICollectionView拖到View Controller Scene中&#xff0c;默认的UICollectionView已经包…

SQL Server的数据库连接的极限在哪儿?

在软件设计中&#xff0c;关于多层的设计&#xff0c;有一部份是有关数据库的。 设计上分成这样三层 客户端UI -- 应用服务器 -- 数据库服务器 有个说法是&#xff0c;可以在应用服务器这一层共享使用数据库连接池&#xff0c;从而减轻数据库服务器的负担。 我查了好多资料&…