jsp - 如果我通过bean,如何访问jsp中的数组列表

标签 jsp jstl javabeans

我是 JSTL 的新手。我如何使用 JSTL <c:foreach>如果我通过下面的示例 bean,则在 jsp 内部

class B{
    private String value="";
    private ArrayList arrayVals;
    public String getvalue(){
        return value;
    }
    public String getarrayVals(){
        return arrayVals;
    }
}

我只会通过 Bean "B"。我试过如下,但jsp没有编译。请帮我。
<c:forEach items="${B.getarrayVals}" var="book"> 
    <c:out value="{book.title}"/> 
</c:forEach>

最佳答案

首先,getarrayVals()应该拼写 getArrayVals() ,显然它应该返回一个列表,而不是一个字符串。

现在假设 servlet 或 action 设置了类型 B 的属性“b”,如下所示:

request.setAttribute("b", theBInstance);

然后转发到 JSP,您可以像这样访问属性“b”中的列表:
${b.arrayVals}

您必须通过请求属性的名称而不是其类名来引用 B 实例。如果将属性命名为 foo,则使用必须使用 ${foo.arrayVals} .
这将简单地打印到列表的 toString。如果要获取列表索引 3 处的元素,可以使用
${b.arrayVals[3]}

如果您想遍历列表元素,请使用 c:forEach 构造:
<c:forEach items="${b.arrayVals}" var="element">
    The element value is ${element} <br/>
</c:forEach>

关于jsp - 如果我通过bean,如何访问jsp中的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5202774/

相关文章:

java - 如何在 Spring 中强制属性文件中的属性?

java - 如何在不使用 xml 或注释的情况下使 Spring 识别 bean?

java - ClassCastException - 客户和客户服务位于加载程序应用程序的未命名模块中?

javascript - 禁用默认情况下出现的 nicescroll 滚动条

java - 在多个 JSP 页面中添加 ArrayList

java - 如何在不使用jsp UseBean的情况下使用JSTL标签

java - 省略 JSTL 中的最后一个逗号 <c :out>

java - 在 getNode 方法之前检查链表是否不为空

java - 如何将动态更改的文本框值存储为复选框值?

Tomcat 7 上的 JSP 失败,NoClassDefFoundError : Lorg/apache/AnnotationProcessor