select标签获取不到值

select标签获取不到值

我在categoryServlet中将所有categoryName放到一个集合里,把集合放到request中,到addBook.jsp中用c:foreach遍历却得不到里面的值,请老师看一下怎么回事。

package com.imooc.servlet;
/**
 * 图书分类的servlet
 */

import com.imooc.dao.LibDaoImpl;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class CategoryServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");

        //接收来自category.jsp的数据
        Long id = Long.valueOf(request.getParameter("id"));
        String categoryName = request.getParameter("categoryName");
        String desc = request.getParameter("desc");

        LibDaoImpl libDao = new LibDaoImpl();
        List<Map<String,Object>> categoryDb = libDao.getCategoryDb();
        List<String> categoryNameList = libDao.getCategoryNameList();

        for(Map<String,Object> map:categoryDb){
            if(map.get("id").equals(id) | map.get("categoryName").equals(categoryName)){
                request.setAttribute("msg","id或类名已存在,请重新输入!");
                request.getRequestDispatcher("/category.jsp").forward(request,response);
                return;
            }
        }
        libDao.addBookCategory(id,categoryName,desc);

        //将categoryName存放到categoryNameList集合中,以便在addBook.jsp的<c:foreach>中获取
        categoryNameList.add(categoryName);

        System.out.println(categoryNameList);

        request.setAttribute("categoryNameList",categoryNameList);
        return;

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request,response);
    }
}
<tr>
   <td>图书分类</td>
   <td>
      <select name="categoryName" >
         <c:forEach var="categoryName" items="${requestScope.categoryNameList}" >
         
            <option value="${categoryName}">${categoryName}</option>

         </c:forEach>
      </select>
   </td>
</tr>


正在回答

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

5回答

同学你好,可以根据提示,在LibDaoImpl中添加图书分类的集合。如:

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

然后添加分类后,将分类信息存放在集合中。在添加分类后,就可以转发到其他的页面。在添加图书的jsp页面,可以获取静态集合中的分类信息。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

提问者 慕数据7156690 2019-03-13 12:08:53

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

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

添加转发了依旧没用
  • 同学你好,转发应该在setAttribute()的后边,将值存入request后再转发。同学再试一下。祝:学习愉快~
    2019-03-13 14:47:32
好帮手慕阿满 2019-03-13 09:32:05

同学将categoryNameList存入request域后,需要转发到显示图书的页面才可以。同学添加转发试试。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕数据7156690 #1
    谢谢老师! 但是如果我想图书分类添加后,页面保持在图书分类添加的页面,应该怎么做? 或者分类添加后,像视频里演示那样是server.jsp的页面,又能把数据传递到addBook.jsp该怎么做?(这样写转发的话,request.getRequestDispatcher("/server.jsp").forward(request,response); 是server.jsp 套server.jsp ,不是老师演示的效果)
    2019-03-13 15:02:26
提问者 慕数据7156690 2019-03-12 20:28:08
好帮手慕阿满 2019-03-12 19:00:15

同学你好,问一下同学的控制台有输出内容吗?

祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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