我是 strut 2 的新手,虽然我在 struts 1.2 上工作过。在现有的项目 jsp 文件之一中,我有以下代码:
<script type="text/javascript">
var relationshipData = { // line1
page : '<s:property value="displayPage" />', // line2
records : '<s:property value="customerRelations.size" />', // line3
rows : [ <s:iterator value="customerRelations" status="iterStatus"> // line4
{ id : '<s:property value="relationId" />',
cell : [ '<s:property value="relationDesc" escapeJavaScript="true" />' ] } <s:if test="!#iterStatus.last">,</s:if> //line5
</s:iterator>] // line6
};
</script>
请求来了CustomerRelationAction.java
,它有方法getCustomerRelations()
和getRelationId()
。
以下是问题:-
我把断点放在方法里面
getCustomerRelations()
。我看到这个方法里面有四次流量。在第 3 行两次,在第 4 行再两次。根据我的理解,流程应该只出现 1 次,即在第 3 行。一旦在第 3 行完成 getCustomerRelations ,不应将其值放入值堆栈中,以便它可以参考下次它被引用(就像它在第 14 行再次被引用)?getCustomerRelations()
方法返回CustomerRelationData
对象列表,其中CustomerRelationData
类也包含该方法getRelationId()
。现在在第 5 行,我们在第 5 行引用 value="relationId。在哪个对象(CustomerRelationAction.java 或 CustomerRelationData)上,将调用 getRelationId() 方法?即使我是不确定列表对象 CustomerRelationData 是否会出现在值堆栈中?如果是,它将被放入值堆栈的哪一行?现在迭代器在第 6 行完成。之后,现在我
<s:property value="relationId" />
再次参考代码,在哪个对象(CustomerRelationAction.java 或 CustomerRelationData)上,将调用 getRelationId() 方法?