我们如何在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}
答案 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.out
或Logger
语句,以查看它是否实际被调用并实际返回了一个值。或者,如果您了解如何使用它,只需运行代码调试器。每个体面的IDE都附带一个。
下一步:
${command.headerList[i]}
输出:没有显示。
然后就没有有效的i
。要正确测试,请执行以下操作以获取第一项:
${command.headerList[0]}