gpt4 book ai didi

jsp - 当属性名称本身是一个动态变量时如何获取bean属性的值

转载 作者:行者123 更新时间:2023-12-04 10:12:33 28 4
gpt4 key购买 nike

我正在尝试编写一个自定义 JSPX 标记,该标记从给定列表中的每个对象读取给定 bean 属性的值,并将该属性的名称作为 JSP 属性传递给标记。标签看起来像这样:

<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:jsp="http://java.sun.com/JSP/Page"
version="2.0">
<jsp:output omit-xml-declaration="yes"/>

<jsp:directive.attribute name="items" type="java.lang.Iterable"
required="true" description="The items whose properties are to be read"
rtexprvalue="true"/>
<jsp:directive.attribute name="propertyName" type="java.lang.String"
required="true" description="The name of the bean property to read"
rtexprvalue="true"/>

<c:forEach items="${items}" var="item">
<!-- This is the bit that doesn't work -->
<jsp:getProperty name="item" property="${propertyName}" />
</c:forEach>

</jsp:root>

问题在于 property jsp:getProperty 的属性tag 似乎不接受表达式,只接受文字值。所以这可以工作,但对我没有用(因为我直到运行时才知道属性名称):
<jsp:getProperty name="item" property="firstName" />

我得到的错误是:
org.apache.jasper.JasperException: org.apache.jasper.JasperException:
PWC6054: Cannot find any information on property '${propertyName}' in
a bean of type 'com.example.FooBar'

谢谢你的帮助。

最佳答案

如果要使用动态属性名称,请使用大括号表示法。

<c:forEach items="${items}" var="item">
${item[propertyName]}
</c:forEach>

关于jsp - 当属性名称本身是一个动态变量时如何获取bean属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402052/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com