【问题标题】:How may I access elements in a session attribute ArrayList<objects> in JSP如何在 JSP 中访问会话属性 ArrayList<objects> 中的元素
【发布时间】:2019-06-17 12:34:58
【问题描述】:

我正在尝试显示从 sql 数据库返回的“标题”到前端的 JSP 文件。

在我的控制器中

ArrayList<ItemBean> inventoryArray = inventory.getInventory(10);            
session.setAttribute("inventory", inventoryArray);

Item 有一个可变的字符串标题。我使用 ItemBean.getTitle(); 我正在尝试显示 ArrayList inventoryArray 中 itemBeans 的标题列表。如何在 JSP 中显示该标题列表?

我的jsp中只有

session.getAttribute("inventory"); 

效果很好,但我对如何访问元素并将它们打印出来感到困惑。

【问题讨论】:

    标签: java session el


    【解决方案1】:

    您可以在会话中访问 ArrayList 并如下迭代。

    <%  
    // Retrieve the list from the session
    ArrayList<ItemBean> list = (ArrayList<ItemBean>) session.getAttribute("inventory");
    
    // Iterate ItemBean list
    for(ItemBean itemBean: list) {
        // You can do you logic here.
    %>
    

    或者您可以检索为对象列表。

    <% ArrayList<Object[]> inventoryList= (ArrayList<Object[]>)session.getAttribute("inventory"); %>
    
    //if you want to get the array of inventory list as below:
    
    <% for(Object[] inventoryListObject: inventoryList) {
        System.out.println(inventoryListObject[0]);
    } %>
    

    【讨论】:

    • 我必须为此导入项目 bean,这被认为是好的做法吗?这会破坏 MVC 模式吗?
    • @veral,我在这里更新了我的答案。如果你不喜欢在 JSP 中访问你的 bean,那么不要将它设置为 session。您可以将会话设置为 ArrayList 而不是 ArrayList.
    • 试试这个@SuppressWarnings(“unchecked”) ArrayList inventoryList= (ArrayList)session.getAttribute("inventory");
    猜你喜欢
    • 2020-02-20
    • 1970-01-01
    • 2017-05-11
    • 2013-02-12
    • 2019-05-18
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    相关资源
    最近更新 更多