如何在JSP中访问bean属性?

时间:2009-11-10 12:50:54

标签: jsp jstl

我们如何在JSP中访问bean属性? 我试过了

<core:forEach var="header" items="${command.headerList}" >
<td><core:out value="${header.columnName}"/></td>
</core:forEach>

其中headerList是 myBean 的列表,其中包含属性 columnName [getter / setter在类中定义]

Expected:它应该在columnName中打印值 Actual:它根本不打印任何内容

我怎样才能访问List中的第n个元素?我试过了

${command.headerList[i]}

Output:没有显示任何内容。

修改:#

我写的时候

${command.headerList}

显示

com.bean.MyBean@14ecb90,com.bean.MyBean @ 169b35,com.bean.MyBean @ 27d572

This is just to let you know that the list is having something

当我写作

${header}

在forEach循环中显示:

javax.servlet.jsp.el.ImplicitObjectELResolver$ImplicitObjects$7@d9d714

That means even header is having value, then why i am unable to print values using

${header.columnName}

2 个答案:

答案 0 :(得分:3)

header是JSP中的一个隐式对象,它映射到请求(HTTP)头。有关隐式对象的完整列表,请参阅the JSP spec

尝试根据您存储的范围引用bean(例如requestScope.header)。最好将名称更改为其他名称。

答案 1 :(得分:1)

  

我们如何在JSP中访问bean属性?   我试过了

<core:forEach var="header" items="${command.headerList}" >
<td><core:out value="${header.columnName}"/></td>
</core:forEach>
     

其中headerList是myBean的列表,其中包含属性columnName [getter / setter在类中定义]

看起来很好。会发生什么呢?

  

我怎样才能访问List中的第n个元素?我试过了

${command.headerList[i]}
只要初始化i并且在范围内,

看起来很好。会发生什么呢?

  

我写的时候

${command.headerList}
     

显示

com.bean.MyBean@14ecb90, com.bean.MyBean@169b35, com.bean.MyBean@27d572

前面应该包含[,尾部应该包含],但只要你没有覆盖Object#toString()中的MyBean,它就会看起来很好类。你有什么期望?

  

当我写作

${header}
     

在forEach循环中显示:

javax.servlet.jsp.el.ImplicitObjectELResolver$ImplicitObjects$7@d9d714

看起来很好。你有什么期望?

总结:我不明白你的问题。请详细说明。发布SSCCE。讲述预期的输入/输出。讲述实际的输入/输出。

编辑您已编辑过您的问题。嗯,这是更新的答案。

${header.columnName}
     

预期:它应该在columnName中打印值   实际:它根本不打印任何东西

然后它实际上没有包含值。要正确测试,请覆盖Object#toString(),如下所示:

public String toString() {
    return "header[" + columnName + "]";
}

使用${command.headerList}进行测试。您还可以向getter方法添加一些System.outLogger语句,以查看它是否实际被调用并实际返回了一个值。或者,如果您了解如何使用它,只需运行代码调试器。每个体面的IDE都附带一个。

下一步:

${command.headerList[i]}
     

输出:没有显示。

然后就没有有效的i。要正确测试,请执行以下操作以获取第一项:

${command.headerList[0]}