JSTL下拉列表在JSP中为空

心。

我正在尝试使用jstl填充我的jsp的下拉列表。我的jsp是这样映射的。

 <servlet>
    <jsp-file>/WEB-INF/views/dilini/newjsp.jsp</jsp-file>
    <servlet-name>newjsp</servlet-name>
</servlet>

<servlet-mapping>
    <servlet-name>newjsp</servlet-name>
    <url-pattern>/newjsp</url-pattern>
</servlet-mapping>

这也是我的jstl加载下拉列表。

     <div class="dropdown">
        <button class="btn btn2 btn-default dropdown-toggle" type="button" id="menu2" data-toggle="dropdown">--Select--
            <span class="caret"></span></button>
        <ul class="dropdown-menu" role="menu" aria-labelledby="menu2">
               <c:forEach items="${personList}" var="person">
                <li role="presentation"><a data-myAttribute="${person.getId()}" class="list2" href="#">${person.getName()}</a></li>
                </c:forEach>
        </ul>
    </div>

这是我的控制器servlet。

   protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try {
        CasualLeaveService service1 = new CasualLeaveServiceImpl();
        List<Person> personList = service1.searchName();
        if (personList.isEmpty()) {
            response.getWriter().write("EMPTY ");
        } else {
            response.getWriter().write("NOT EMPTY ");
            request.setAttribute("personList", personList);
            RequestDispatcher rd = getServletContext().getRequestDispatcher("/newjsp");
            rd.forward(request, response);

        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

当我自己运行控制器时,它会显示如下内容。
在此处输入图片说明

我真的不明白为什么下拉列表不可见servlet。请帮我。谢谢你。

添加了更多答案。希望这会有所帮助。
另外,当jsp调用“通过单击按钮或单击链接”时,我应该再添加一个,您应该首先到达控制器,然后控制器将重定向jsp。这是缺少的部分。

再次感谢大家的支持。

约瑟夫·乔霍拉切克(Jozef Chocholacek)

将评论总结成一个答案:

您当前的方法是好的,请继续使用servlet加载数据,而JSP仅显示它们(或错误消息)。即避免在链接/表单操作中使用JSP URL,始终使用servlet的URL,servlet应该加载数据,然后将请求转发到适当的JSP。它正是Model / View / Controller模式/体系结构。

建议对您的代码进行几处建议的更改:

  • 从web.xml中删除newjsp映射,不应仅通过servlet直接访问JSP页面。

JSP:处理空列表的情况

<div class="dropdown">
    <button class="btn btn2 btn-default dropdown-toggle" type="button" id="menu2" data-toggle="dropdown">--Select--<span class="caret"></span></button>
    <ul class="dropdown-menu" role="menu" aria-labelledby="menu2">
        <c:if test="${empty personList}">
            <li>No person available</li>
        </c:if>
        <c:forEach items="${personList}" var="person">
            <li role="presentation"><a data-myAttribute="${person.getId()}" class="list2" href="#">${person.getName()}</a></li>
        </c:forEach>
    </ul>
</div>

Servlet:不处理响应,这是视图的任务;只需加载数据并转发到视图(JSP)

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        CasualLeaveService service1 = new CasualLeaveServiceImpl();
        List<Person> personList = service1.searchName();
        request.setAttribute("personList", personList);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/WEB-INF/views/dilini/newjsp.jsp");
        rd.forward(request, response);
    } catch (Exception e) {
        e.printStackTrace(); // bad practice, use some logger
        request.setAttribute("error", "Error loading person list: " + e.getMessage());
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/WEB-INF/views/dilini/error.jsp"); // you have to create one
        rd.forward(request, response);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用option和c:out时,从JSP / JSTL的下拉列表中获取值

来自分类Dev

如何根据是否通过jsp中的jstl检查单选按钮启用和禁用下拉列表

来自分类Dev

如果下拉列表在MVC中为空,如何显示消息?

来自分类Dev

填充下拉列表显示为空

来自分类Dev

填充下拉列表显示为空

来自分类Dev

JSP / JSTL-如何在列表中循环浏览列表?

来自分类Dev

如何禁用JSP中的下拉列表?

来自分类Dev

数据库中的JSP下拉列表

来自分类Dev

在JSP中获取空下拉列表

来自分类Dev

如何在jsp中的jstl中迭代对象列表

来自分类Dev

JSP中的JSTL循环可用于嵌套的无提示列表

来自分类Dev

如何使用jstl在jsp中以表格格式显示列表

来自分类Dev

KnockoutJS-将值加载到下拉列表中。选择值始终为空

来自分类Dev

AngularJS <select> 下拉列表为空,具体取决于模板中的位置

来自分类Dev

数据验证下拉列表中的空值

来自分类Dev

如果在jsp页面中数组列表为空,如何删除类?

来自分类Dev

从Bean类型的数组列表填充JSP中的下拉列表

来自分类Dev

列表在arrayadapter中为空

来自分类Dev

集合上的.fetch()之后,主干下拉列表为空

来自分类Dev

检查所有下拉列表是否为空jQuery

来自分类Dev

如何在JSP的下拉列表中设置默认值?

来自分类Dev

在Jsp中具有选定值的下拉列表

来自分类Dev

如何避免JSP中的文本框下拉列表?

来自分类Dev

对于jsp中的下拉列表,getAttribute()返回null

来自分类Dev

如何在使用Javaee jsp servlet jpa jstl ejb的添加产品页面上显示类别下拉列表?

来自分类Dev

JSP的选定值下拉列表

来自分类Dev

使下拉列表为只读

来自分类Dev

使用JSTL根据另一个下拉选择将值填充到下拉列表中

来自分类Dev

使用JSTL根据另一个下拉选择将值填充到下拉列表中

Related 相关文章

  1. 1

    使用option和c:out时,从JSP / JSTL的下拉列表中获取值

  2. 2

    如何根据是否通过jsp中的jstl检查单选按钮启用和禁用下拉列表

  3. 3

    如果下拉列表在MVC中为空,如何显示消息?

  4. 4

    填充下拉列表显示为空

  5. 5

    填充下拉列表显示为空

  6. 6

    JSP / JSTL-如何在列表中循环浏览列表?

  7. 7

    如何禁用JSP中的下拉列表?

  8. 8

    数据库中的JSP下拉列表

  9. 9

    在JSP中获取空下拉列表

  10. 10

    如何在jsp中的jstl中迭代对象列表

  11. 11

    JSP中的JSTL循环可用于嵌套的无提示列表

  12. 12

    如何使用jstl在jsp中以表格格式显示列表

  13. 13

    KnockoutJS-将值加载到下拉列表中。选择值始终为空

  14. 14

    AngularJS <select> 下拉列表为空,具体取决于模板中的位置

  15. 15

    数据验证下拉列表中的空值

  16. 16

    如果在jsp页面中数组列表为空,如何删除类?

  17. 17

    从Bean类型的数组列表填充JSP中的下拉列表

  18. 18

    列表在arrayadapter中为空

  19. 19

    集合上的.fetch()之后,主干下拉列表为空

  20. 20

    检查所有下拉列表是否为空jQuery

  21. 21

    如何在JSP的下拉列表中设置默认值?

  22. 22

    在Jsp中具有选定值的下拉列表

  23. 23

    如何避免JSP中的文本框下拉列表?

  24. 24

    对于jsp中的下拉列表,getAttribute()返回null

  25. 25

    如何在使用Javaee jsp servlet jpa jstl ejb的添加产品页面上显示类别下拉列表?

  26. 26

    JSP的选定值下拉列表

  27. 27

    使下拉列表为只读

  28. 28

    使用JSTL根据另一个下拉选择将值填充到下拉列表中

  29. 29

    使用JSTL根据另一个下拉选择将值填充到下拉列表中

热门标签

归档