急急急问题很严重
1.可正常进入list.do页面
2.当删除复古类时报错
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.imooc.icake.global.GlobalController.service(GlobalController.java:56)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.imooc.icake.global.EncodingFilter.doFilter(EncodingFilter.java:22)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`icake`.`cake`, CONSTRAINT `FK_Reference_1` FOREIGN KEY (`cid`) REFERENCES `catalog` (`id`))
### The error may exist in com/imooc/icake/dao/CatalogDao.java (best guess)
### The error may involve com.imooc.icake.dao.CatalogDao.delete-Inline
### The error occurred while setting parameters
### SQL: delete from catalog where id=?
### Cause: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`icake`.`cake`, CONSTRAINT `FK_Reference_1` FOREIGN KEY (`cid`) REFERENCES `catalog` (`id`))
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199)
at org.apache.ibatis.session.defaults.DefaultSqlSession.delete(DefaultSqlSession.java:212)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:72)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)
at com.sun.proxy.$Proxy14.delete(Unknown Source)
at com.imooc.icake.biz.impl.CatalogBizImpl.remove(CatalogBizImpl.java:21)
at com.imooc.icake.controller.CatalogController.remove(CatalogController.java:51)
... 30 more
Caused by: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`icake`.`cake`, CONSTRAINT `FK_Reference_1` FOREIGN KEY (`cid`) REFERENCES `catalog` (`id`))
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:974)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:391)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
... 36 more
3.添加分类时
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.imooc.icake.global.GlobalController.service(GlobalController.java:56)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.imooc.icake.global.EncodingFilter.doFilter(EncodingFilter.java:22)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.jasper.JasperException: 在 [42] 行处理 [/WEB-INF/pages/admin/catalog_add.jsp] 时发生异常
39: <c:forEach items="${root.children}" var="cat1">
40: <option value="${cat1.id}"> ${cat1.title}</option>
41: <c:forEach items="cat1.children" var="cat2">
42: <option value="${cat2.id}"> ${cat2.title}</option>
43: </c:forEach>
44: </c:forEach>
45:
Stacktrace:
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:617)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:514)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:470)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:395)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:316)
at com.imooc.icake.controller.CatalogController.toAdd(CatalogController.java:28)
... 30 more
Caused by: javax.el.PropertyNotFoundException: 类型[java.lang.String]上找不到属性[id]
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:260)
at javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:212)
at javax.el.BeanELResolver.property(BeanELResolver.java:333)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:92)
at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:113)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:190)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:944)
at org.apache.jsp.WEB_002dINF.pages.admin.catalog_005fadd_jsp._jspx_meth_c_005fforEach_005f1(catalog_005fadd_jsp.java:311)
at org.apache.jsp.WEB_002dINF.pages.admin.catalog_005fadd_jsp._jspx_meth_c_005fforEach_005f0(catalog_005fadd_jsp.java:263)
at org.apache.jsp.WEB_002dINF.pages.admin.catalog_005fadd_jsp._jspService(catalog_005fadd_jsp.java:164)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
... 43 more
package com.imooc.icake.global; import javax.servlet.GenericServlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class GlobalController extends GenericServlet { public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { /* .do /login.do DefaultController login /Cake/detail.do CakeController detail /admin/Cake/add.do CakeController add */ HttpServletRequest request = (HttpServletRequest)req; HttpServletResponse response = (HttpServletResponse)res; String path = request.getServletPath(); //判断后台操作还是前端操作 if(path.indexOf("/admin")!=-1){ //后台 path = path.substring(7); }else { path = path.substring(1); } /* login.do DefaultController login Cake/detail.do CakeController detail Cake/add.do CakeController add */ //判断是否模块 int index = path.indexOf("/"); String className = null; String methodName = null; if (index!=-1){ //带有模块 className = "com.imooc.icake.controller."+path.substring(0,index)+"Controller"; methodName = path.substring(index+1,path.indexOf(".do")); }else{ className = "com.imooc.icake.controller.DefaultController"; methodName = path.substring(0,path.indexOf(".do")); } try { //反射调用方法 Class cla = Class.forName(className); Object object = cla.newInstance(); Method method = cla.getMethod(methodName,HttpServletRequest.class,HttpServletResponse.class); method.invoke(object,request,response); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } }
package com.imooc.icake.global; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; public class DaoFactory { private static DaoFactory daoFactory; private SqlSessionFactory sessionFactory; private DaoFactory() { try { SqlSessionFactoryBuilder sessionFactoryBuilder = new SqlSessionFactoryBuilder(); sessionFactory = sessionFactoryBuilder.build(Resources.getResourceAsReader("/mybatis.xml")); } catch (Exception e) { e.printStackTrace(); } } public static DaoFactory getInstance() { try{ if (daoFactory==null) daoFactory = new DaoFactory(); }catch (Exception e){ e.printStackTrace(); } return daoFactory; } public <T>T getDao(Class<T> tClass){ return sessionFactory.openSession(true).getMapper(tClass); } }
package com.imooc.icake.dao; import com.imooc.icake.entity.Catalog; import org.apache.ibatis.annotations.*; import java.util.List; public interface CatalogDao { @Insert("<script>"+ "insert into catalog(title,pid,info) values"+ "<foreach collection='list' item='catalog' separator=','>"+ "(#{catalog.title},#{catalog.pid},#{catalog.info})"+ "</foreach>"+ "</script>") @Options(useGeneratedKeys = true,keyProperty = "id") void batchInsert(List<Catalog> list); @Delete("delete from catalog where id=#{id}") void delete(int id); @Select("select * from catalog where id=#{id}") @Results(id = "all",value = { @Result(column = "id",property = "id",id = true), @Result(column = "title",property = "title"), @Result(column = "pid",property = "pid"), @Result(column = "info",property = "info"), @Result(column = "id",property = "children",many=@Many(select = "selectByPid")) }) Catalog select(int id); @Select("select * from catalog where pid=#{pid}") @ResultMap("all") List<Catalog> selectByPid(int pid); }
package com.imooc.icake.biz.impl; import com.imooc.icake.biz.CatalogBiz; import com.imooc.icake.dao.CatalogDao; import com.imooc.icake.entity.Catalog; import com.imooc.icake.global.DaoFactory; import java.io.IOException; import java.util.List; public class CatalogBizImpl implements CatalogBiz { private CatalogDao catalogDao = DaoFactory.getInstance(). getDao(CatalogDao.class); public void add(List<Catalog> list) { catalogDao.batchInsert(list); } public void remove(int id) { catalogDao.delete(id); } public Catalog getRoot() { return catalogDao.select(10000); } }
package com.imooc.icake.controller; import com.imooc.icake.biz.CatalogBiz; import com.imooc.icake.biz.impl.CatalogBizImpl; import com.imooc.icake.entity.Catalog; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class CatalogController { private CatalogBiz catalogBiz = new CatalogBizImpl(); // /admin/Catalog/list.do public void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Catalog root = catalogBiz.getRoot(); request.setAttribute("root",root); request.getRequestDispatcher("/WEB-INF/pages/admin/catalog_list.jsp").forward(request,response); } // /admin/Catalog/toAdd.do public void toAdd(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Catalog root = catalogBiz.getRoot(); request.setAttribute("root",root); request.getRequestDispatcher("/WEB-INF/pages/admin/catalog_add.jsp").forward(request,response); } // /admin/Catalog/add.do public void add(HttpServletRequest request, HttpServletResponse response) throws IOException { String[] titles = request.getParameterValues("title"); String[] pids = request.getParameterValues("pid"); String[] infos = request.getParameterValues("info"); List<Catalog> list = new ArrayList<Catalog>(); for (int i=0;i<titles.length;i++){ Catalog catalog = new Catalog(); catalog.setTitle(titles[i]); catalog.setPid(Integer.parseInt(titles[i])); catalog.setInfo(infos[i]); list.add(catalog); } catalogBiz.add(list); response.sendRedirect("list.do"); } // /admin/Catalog/remove.do public void remove(HttpServletRequest request, HttpServletResponse response) throws IOException { int id = Integer.parseInt(request.getParameter("id")); catalogBiz.remove(id); response.sendRedirect("list.do"); } }
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <jsp:include page="top.jsp"/> <section id="content_wrapper"> <section id="content" class="table-layout animated fadeIn"> <div class="tray tray-center"> <div class="content-header"> <h2> 分类管理</h2> <p class="lead"></p> </div> <div class="admin-form theme-primary mw1000 center-block" style="padding-bottom: 175px;"> <div class="panel heading-border"> <div class="panel-menu"> <div class="row"> <div class="hidden-xs hidden-sm col-md-3"> <div class="btn-group"> <button type="button" class="btn btn-default light"> <i class="fa fa-trash"></i> </button> <button type="button" class="btn btn-default light"> <i class="fa fa-plus" onclick="javascript:window.location.href='/admin/Catalog/toAdd.do';"></i> </button> </div> </div> </div> </div> <div class="panel-body pn"> <table id="message-table" class="table admin-form theme-warning tc-checkbox-1"> <thead> <tr class=""> <th class="text-center hidden-xs">Select</th> <th class="hidden-xs">名称</th> <th class="hidden-xs">描述</th> <th>操作</th> </tr> </thead> <tbody> <c:forEach items="${root.children}" var="cat1"> <tr class="message-unread"> <td class="hidden-xs"> <label class="option block mn"> <input type="checkbox" name="mobileos" value="FR"> <span class="checkbox mn"></span> </label> </td> <td>${cat1.title}</td> <td>${cat1.info}</td> <td> <a href="/admin/Catalog/remove.do?id=${cat1.id}">删除</a> </td> </tr> <c:forEach items="${cat1.children}" var="cat2"> <tr class="message-unread"> <td class="hidden-xs"> <label class="option block mn"> <input type="checkbox" name="mobileos" value="FR"> <span class="checkbox mn"></span> </label> </td> <td style="padding-left: 50px;">${cat2.title}</td> <td>${cat2.info}</td> <td> <a href="/admin/Catalog/remove.do?id=${cat2.id}">删除</a> </td> </tr> <c:forEach items="${cat2.children}" var="cat3"> <tr class="message-unread"> <td class="hidden-xs"> <label class="option block mn"> <input type="checkbox" name="mobileos" value="FR"> <span class="checkbox mn"></span> </label> </td> <td style="padding-left: 100px;">${cat3.title}</td> <td>${cat3.info}</td> <td> <a href="/admin/Catalog/remove.do?id=${cat3.id}">删除</a> </td> </tr> </c:forEach> </c:forEach> </c:forEach> </tbody> </table> </div> </div> </div> </div> </section> </section> <jsp:include page="bottom.jsp"/>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <jsp:include page="top.jsp"/> <section id="content_wrapper"> <section id="content" class="table-layout animated fadeIn"> <div class="tray tray-center"> <div class="content-header"> <h2> 添加分类</h2> <p class="lead"></p> </div> <div class="admin-form theme-primary mw1000 center-block" style="padding-bottom: 175px;"> <div class="panel heading-border"> <form method="post" action="/admin/Catalog/add.do" id="admin-form"> <div class="panel-body bg-light"> <div class="section row"> <div> <div class="col-md-3"><b>分类编号</b></div> <div class="col-md-5"><b>分类名称</b></div> <div class="col-md-3"><b>所属父类</b></div> <div class="col-md-1" style="text-align:right;"><b>删除</b></div> </div> </div> <div class="section row" id="batch_items"> <div> <div class="col-md-3"> <label for="title" class="field prepend-icon"> <input type="text" name="title" id="title" class="gui-input money" placeholder="名称..." required> <label for="title" class="field-icon"> <i class="fa fa-stack"></i> </label> </label> </div> <div class="col-md-3"> <label class="field select"> <select id="language" name="pid"> <option value="${root.id}">${root.title}</option> <c:forEach items="${root.children}" var="cat1"> <option value="${cat1.id}"> ${cat1.title}</option> <c:forEach items="cat1.children" var="cat2"> <option value="${cat2.id}"> ${cat2.title}</option> </c:forEach> </c:forEach> </select> <i class="arrow double"></i> </label> </div> <div class="col-md-5"> <label for="info" class="field prepend-icon"> <input type="text" name="info" id="info" class="gui-input" placeholder="描述..."> <label for="info" class="field-icon"> <i class="fa fa-info"></i> </label> </label> </div> <div class="col-md-1" style="text-align:right;"> <button type="button" class="button remove_item_button"> X </button> </div> </div> </div> <div class="panel-footer text-right"> <button type="button" class="button" id="add_item_button"> 添加 </button> <button type="submit" class="button"> 保存 </button> <button type="button" class="button" onclick="javascript:window.location.href='/admin/Catalog/list.do';"> 返回 </button> </div> </div> </form> </div> </div> </div> </section> </section> <jsp:include page="bottom.jsp"/> <script> $("#add_item_button").click(function(){ $("#batch_items").children("div").last().after($("#batch_items").children("div").first().clone()); $("#batch_items").find("button.remove_item_button").attr("disabled",false); $("#batch_items").children("div").last().find("input").eq(0).attr("value",""); $("#batch_items").children("div").last().find("button.remove_item_button").click( function(){itemRemove(this);} ); }); function itemRemove(ele){ $(ele).parent().parent().remove(); if($("#batch_items").children("div").size()==1){ $("#batch_items").children("div").find("button.remove_item_button").attr("disabled",true); } } </script>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>欢迎使用 IMOOC Cake 后台管理系统</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="/css/theme.css"> <link rel="stylesheet" type="text/css" href="/css/admin-forms.css"> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> <![endif]--> </head> <body class="admin-validation-page" data-spy="scroll" data-target="#nav-spy" data-offset="200"> <div id="main"> <header class="navbar navbar-fixed-top navbar-shadow"> <div class="navbar-branding"> <a class="navbar-brand" href="../index.html"> <H3>IMOOC Cake 后台管理系统</H3> </a> <span id="toggle_sidemenu_l" class="ad ad-lines"></span> </div> </header> <aside id="sidebar_left" class="nano nano-light affix"> <div class="sidebar-left-content nano-content"> <header class="sidebar-header"> <div class="sidebar-widget author-widget"> <div class="media"> <a class="media-left" href="#"> <img src="/images/head.jpg" class="img-responsive"> </a> <div class="media-body"> <div class="media-author">管理员</div> <div class="media-links"> <a href="login.html">退出</a> </div> </div> </div> </div> <div class="sidebar-widget search-widget hidden"> <div class="input-group"> <span class="input-group-addon"> <i class="fa fa-search"></i> </span> <input type="text" id="sidebar-search" class="form-control" placeholder="Search..."> </div> </div> </header> <ul class="nav sidebar-menu"> <li class="sidebar-label pt20">商品管理</li> <li class="active"> <a href="cake_list.html"> <span class="glyphicon glyphicon-book"></span> <span class="sidebar-title">商品列表</span> </a> </li> <li> <a href="cake_add.html"> <span class="glyphicon glyphicon-home"></span> <span class="sidebar-title">商品上架</span> </a> </li> <li class="sidebar-label pt20">分类管理</li> <li class="active"> <a href="/admin/Catalog/list.do"> <span class="glyphicon glyphicon-book"></span> <span class="sidebar-title">分类列表</span> </a> </li> <li> <a href="/admin/Catalog/toAdd.do"> <span class="glyphicon glyphicon-home"></span> <span class="sidebar-title">添加分类</span> </a> </li> </ul> <div class="sidebar-toggle-mini"> <a href="login.html"> <span class="fa fa-sign-out"></span> </a> </div> </div> </aside>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> </div> <style> /* demo page styles */ body { min-height: 2300px; } .content-header b, .admin-form .panel.heading-border:before, .admin-form .panel .heading-border:before { transition: all 0.7s ease; } /* responsive demo styles */ @media (max-width: 800px) { .admin-form .panel-body { padding: 18px 12px; } } </style> <style> .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 48%; margin-top: 0; margin-bottom: 0; line-height: 25px; text-indent: 3px; color: #888; border-color: #DDD; background-color: #FDFDFD; -webkit-appearance: none; /*Optionally disable dropdown arrow*/ } </style> <!-- jQuery --> <script src="/js/jquery.min.js"></script> <script src="/js/jquery-ui.min.js"></script> <!-- Theme Javascript --> <script src="/js/utility.js"></script> <script src="/js/demo/demo.js"></script> <script src="/js/main.js"></script> <script src="/js/pages.js"></script> <!-- END: PAGE SCRIPTS --> </body> </html>
正在回答 回答被采纳积分+1
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星