老师,为什么我获取不到分类信息呢?

老师,为什么我获取不到分类信息呢?

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>新建图书信息</title>

        <link rel="stylesheet" href="css/bootstrap.min.css">

        <link rel="stylesheet" href="css/add.css">

    </head>

    <body>

        <nav class="navbar navbar-default">

            <div class="container">

                <div class="navbar-header">

                    <a class="navbar-brand" href="/dept/list.do">

                        图书信息管理

                    </a>

                </div>

            </div>

        </nav>

        <div class="container">

            <div class="jumbotron">

                <h1>Hello, XXX!</h1>

                <p>请小心地新增图书信息,要是建了一个错误的就不好了。。。</p>

            </div>

            <div class="page-header">

                <h3><small>新建</small></h3>

            </div>

            <form class="form-horizontal" enctype="multipart/form-data" action="${pageContext.request.contextPath }/AddBookServlet" method="post">


                <div class="form-group">

                    <label for="name" class="col-sm-2 control-label">图书编号 :</label>

                    <div class="col-sm-8">

                        <input name="bookId" class="form-control" id="bookId">

                    </div>

                </div>

                <div class="form-group">

                    <label for="name" class="col-sm-2 control-label">图书名称 :</label>

                    <div class="col-sm-8">

                        <input name="bookName" class="form-control" id="bookName">

                    </div>

                </div>

                <div class="form-group">

                    <label for="categoryId" class="col-sm-2 control-label">分类 :</label>

                    <select id="categoryId" name="categoryId" class="col-sm-2 form-control" style="width: auto;margin-left: 15px">

                     <!--  <option value="计算机" selected="">计算机</option>

                       <option value="文学">文学</option>

                       <option value="历史">历史</option>

                       --> 

                       <c:forEach items="${categoryList}" var="category">

                       <option value="${category.cname}" selected="">${category.cname}</option>

                       </c:forEach>

                    </select>

                </div>


                 <div class="form-group">

                    <label for="name" class="col-sm-2 control-label">价格 :</label>

                    <div class="col-sm-8">

                        <input name="bookPrice" class="form-control" id="bookPrice">

                    </div>

                  </div>

                   

                  <div class="form-group" >

                    <label for="name" class="col-sm-2 control-label">图书封面 :</label>

                    <input type="file" id="bookPic" name="bookPic" style="padding-left: 15px">

                  </div>


                  <div class="form-group">

                    <label for="name" class="col-sm-2 control-label">备注 :</label>

                    <div class="col-sm-8">

                        <input name="remarks" class="form-control" id="remarks">

                    </div>

                  </div>


                <div class="form-group">

                    <div class="col-sm-offset-2 col-sm-10">

                        <button type="submit" class="btn btn-primary">保存</button>&nbsp;&nbsp;&nbsp;

                    </div>

                </div>

            </form>

        </div>

        <footer class="text-center" >

            copy@imooc

        </footer>

    </body>

<script type="text/javascript" src="js/jquery-3.3.1.js" ></script>

<script type="text/javascript">

  $("#bookPrice").change(function(){

  var bookPrice=document.getElementById("bookPrice").value;

  var bookPriceRegex=/[0-9]{1,}/;

  if(bookPriceRegex.test(bookPrice) == false){

  document.getElementById("caId").innerHTML="请输入纯数字";

  document.getElementById("bookPrice").value="";//输入错误清空文本框

  }

  })

</script>

</html>

http://img1.sycdn.imooc.com//climg/5ed38d930957fc1d01830052.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,是的,将分类存入servletContext中是request.getServletContext().setAttribute("catagoryList", categoryList);

在同学新贴出来的CategoryServiceImpl代码中,是将分类存入到categoryDb中的,如:

http://img1.sycdn.imooc.com//climg/5ed478cb09c8141c06620298.jpg

这里将要同学添加图书时,跳转到servlet中,获取分类信息,存入request中,并转发到添加页面显示。

祝:学习愉快~

  • 阿硕A 提问者 #1
    老师,您的意思是在哪里添加啊,我没听懂 是在CategoryServiceImpl中还是AddCategoryServlet中呢
    2020-06-01 14:03:36
好帮手慕阿满 2020-06-01 09:41:50

同学你好,同学贴出来的代码时添加分类,这里并没有将分类添加到request或者servletContext中。问一下同学在CategoryServiceImpl中是如何存放添加的分类的?在跳转到添加图书的servlet中是否有获取分类信息,并存放到request中,转发到添加图书的页面。

祝:学习愉快~

  • 提问者 阿硕A #1
    /** * 图书分类处理类CategoryServiceImpl: 类型描述:能够描述图书分类,private static final List<Category> categoryDb; 方法: 添加图书分类:public void addCatgory(String categoryId, String catgoryName) {} 删除图书分类:public void deleteCatgory(String categoryId) {} * * */ package com.imooc.impl; import java.util.ArrayList; import java.util.List; import com.imooc.domain.Category; import com.imooc.service.CategoryService; public class CategoryServiceImpl implements CategoryService{ private static final List<Category> categoryDb=new ArrayList<Category>(); public static List<Category> getCategoryDb(){ return categoryDb; } //添加图书分类 @Override public void addCatgory(String categoryId, String catgoryName) { Category gategory=new Category(categoryId,catgoryName); categoryDb.add(gategory); } //删除图书分类 @Override public void deleteCatgory(String categoryId) { for(Category c:categoryDb) { if(c.getCid().equals(categoryId)) { categoryDb.remove(c); break; } } } public static String getCateNameById(String categoryId) { for(Category c:categoryDb) { if(c.getCid().equals(categoryId)) { return categoryId; } } return null; } } 老师,看一下
    2020-06-01 10:22:50
  • 提问者 阿硕A #2
    怎么将分类添加到request或者servletContext中呢?
    2020-06-01 10:25:36
  • 提问者 阿硕A #3
    request.getServletContext().setAttribute("catagoryList", categoryList); 是这样么?
    2020-06-01 10:33:19
好帮手慕阿满 2020-05-31 19:09:37

同学你好,同学是通过categoryList遍历分类信息的,如:

http://img1.sycdn.imooc.com//climg/5ed390070928b19207820179.jpg

问一下同学是否有将categoryList存入到request中并转发到添加的页面呢?或者将其存入到session或servletContext中?如果没有,建议同学将其存入request中并转发到添加的页面,如果有,建议同学检查一下单词是否拼写错误。

祝:学习愉快~

  • 提问者 阿硕A #1
    package com.imooc.web.servlet; import java.io.IOException; import java.util.List; 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 com.imooc.domain.Category; import com.imooc.impl.CategoryServiceImpl; import com.imooc.service.CategoryService; @WebServlet("/AddCategoryServlet") public class AddCategoryServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //接收数据,获取分类id String categoryId = request.getParameter("categoryId"); String categoryName = request.getParameter("categoryName"); //封装数据 Category category =new Category(); category.setCid(categoryId); category.setCname(categoryName); //处理数据:添加数据 CategoryService categoryservice=new CategoryServiceImpl(); categoryservice.addCatgory(categoryId, categoryName); List<Category> categoryList=(List)request.getServletContext().getAttribute("categoryList"); // request.setAttribute("categoryList",categoryList); response.sendRedirect(request.getContextPath()+"/categoryList.jsp"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
    2020-05-31 19:14:28
  • 提问者 阿硕A #2
    老师,是这个吗?我看着是有的
    2020-05-31 19:14:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师