首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Struts1.3操作中的ArrayList传递给适当的JSP

将Struts1.3操作中的ArrayList传递给适当的JSP
EN

Stack Overflow用户
提问于 2018-01-18 00:13:48
回答 1查看 245关注 0票数 1

我在一个项目中使用StrutsV1.3。这是我的Action类,我想在execute函数中通过request.settAttribute发送一个arrayList。

公共类操作扩展了ProductAction {私有列表productList;

代码语言:javascript
复制
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {
            Product product1 = new Product();
            product1.setProductName("productName1");
            product1.setProductCategory("productCategory1");
            product1.setProductPrice(15.33);
            product1.setProductDescription("productDescription1");

            Product product2 = new Product();
            product2.setProductName("productName2");
            product2.setProductCategory("productCategory2");
            product2.setProductPrice(15.454543);
            product2.setProductDescription("productDescription2");

            productList = new ArrayList<Product>();

            productList.add(product1);
            productList.add(product2);
            request.setAttribute("products", productList);
            return mapping.findForward("success");
}

如你所见,我想发送一个产品的ArrayList,其中产品是一个POJO。

下面是我的JSP代码,我希望从Action类中获得"${products}“。

代码语言:javascript
复制
                    <c:forEach items="${products}" var="product">
                        <tr>
                            <td>${product.productName}</td>
                            <td>${product.productCategory}</td>
                            <td>${product.productDescription}</td>
                            <td>${product.productPrice}</td>
                        </tr>
                    </c:forEach>

我的问题是,在forEach中,我没有收到任何东西(甚至tr都不会出现)。我如何才能保证在JSP中获得有效的ArrayList调用?

这是我的动作映射

代码语言:javascript
复制
<action name="product" path="/product" type="view.ProductAction" scope="session">
            <forward name="success" path="/productList.jsp" redirect="true"/>
            <forward name="failure" path="/success.jsp" redirect="true"/>
        </action>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-18 07:35:26

从转发配置中删除属性redirect="true",这会使jsp重定向所需的属性丢失。

如果动作类对jsp没有意义,你怎么能保证它呢?这些值由EL表达式计算并由Jstl标记呈现,因此必须确保它们在jsp作用域中是可访问的。转发到jsp将变量保存到request作用域,然后您可以在for each标记中读取它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48305489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档