Struts2迭代器属性值(不工作)
我试图使用struts迭代器从列表中写入一些数据。学生是我定义的一个班级。 与value属性一起使用时,s:property似乎根本不起作用 我在JSP中有以下代码:Struts2迭代器属性值(不工作),struts2,tags,Struts2,Tags,我试图使用struts迭代器从列表中写入一些数据。学生是我定义的一个班级。 与value属性一起使用时,s:property似乎根本不起作用 我在JSP中有以下代码: <s:iterator value="students" var="student"> <h2><s:property /></h2> <h2><s:property value="firstName" /></h2> &l
<s:iterator value="students" var="student">
<h2><s:property /></h2>
<h2><s:property value="firstName" /></h2>
<h2><s:property value="student.firstName" /></h2>
<h2><s:property value="top.firstName" /></h2>
<h2><s:property value="[0].firstName" /></h2>
<h2><s:property value="#firstName" /></h2>
</s:iterator>
Student类具有getFirstName()方法,如下所示:
String getFirstName() {
return firstName;
}
我正在使用Struts 2.1.6日志文件中没有异常。
查看html源代码时,我只看到空的h2标记。
我不知道这里有什么问题。感谢您的帮助 您的getFirstName()方法只有包级别的访问权限。它应该是公共的,可以从JSP访问 换成
公共字符串getFirstName()
设置好了。当您在迭代器标记中使用“var”属性时,您必须引用对象中的值,如
<s:iterator value="students" var="student">
<h2><s:property value="#student.firstName" /></h2>
</s:iterator>
您可以编写相同的代码,而无需使用var属性,如下所示
<s:iterator value="students">
<h2><s:property value="firstName" /></h2>
</s:iterator>
两者的工作原理相同。它应该是一个公共方法。为了让OGNL访问您的域对象属性,访问器方法应该是公共的,这并不愚蠢。我有时还是这样。从现在起,这将是你寻找的第一件事。
<s:iterator value="students">
<h2><s:property value="firstName" /></h2>
</s:iterator>