在JSP中页面加载时填充下拉列表

3
这是我想在下拉列表中填充的数组列表。
  ArrayList<FriendRequestBean> friendRequests = (ArrayList<FriendRequestBean>) session.getAttribute("friendRequests");

但是当我点击下拉列表图标时,它是空的。有什么解决办法?我希望它能像Facebook通知一样完成。
  <ul class="nav navbar-nav navbar-right">
                <li class="dropdown" data-toggle="tooltip" data-placement="bottom" title="Friend Requests">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                        <i class="fa fa-user"></i>
                    </a>
                    <ul class="dropdown-menu" role="menu">
                        <%
                            for(int i=0; i<friendRequests.size(); i++){
                        %>
                        <li>
                         <a href="#"><%=friendRequests.get(i).getRequestSender() %> User</a>
                        </li>

                        <% } %>

                    </ul>
                </li>
           </ul>

这是Servlet/控制器的代码:

  session.setAttribute("loginSuccess", user);

  friendRequests = FriendRequestBAL.showFriendRequests(user.getUserID());

  session.setAttribute("friendRequests", friendRequests);

  RequestDispatcher rd = request.getRequestDispatcher("Index.jsp");

                                    rd.forward(request, response);

请发布您正在从哪个控制器/页面获取会话信息,以便我们能够更好地提供帮助。 - Asura
1个回答

1
你需要一个数据的引用。当你返回视图时(猜测你正在使用控制器),你应该将数据(friendRequests)添加到模型对象中,然后你可以在视图文件(.jsp)中访问它;通常不希望在JSP文件中出现Java代码。
示例:控制器
@RequestMapping(value = "/", method = RequestMethod.GET)
@ResponseStatus(value=HttpStatus.OK)
public String home(Locale locale, Model model,HttpServletRequest request) {
    Date date = new Date();
    DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);

    String formattedDate = dateFormat.format(date);

    model.addAttribute("serverTime", formattedDate );
    return "home";
}

现在主页是视图(home.jsp),因此我们需要将其放在JSP文件中。

Welcome
it is now ${serverTime}.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接