Struts2中的ValueStack是如何工作的?

Struts2中的ValueStack是如何工作的?,struts2,valuestack,Struts2,Valuestack,考虑以下代码 public类SampleAction{ 私有字符串[]sampleArray1=新字符串[]{“item1”、“item2”、“item3”}; 私有字符串[]sampleArray2=新字符串[]{“a”、“b”、“c”}; private List lst=new ArrayList(); 第一项增补(1) 第一项增补(2) //接球手和接球手 } 现在,当我们尝试在JSP中访问它时,上面哪些属性将在值堆栈中?它是否像一个普通的堆栈一样工作,也就是说,继续推它读取的任何属性

考虑以下代码

public类SampleAction{
私有字符串[]sampleArray1=新字符串[]{“item1”、“item2”、“item3”};
私有字符串[]sampleArray2=新字符串[]{“a”、“b”、“c”};
private List lst=new ArrayList();
第一项增补(1)
第一项增补(2)
//接球手和接球手
}

现在,当我们尝试在JSP中访问它时,上面哪些属性将在值堆栈中?它是否像一个普通的堆栈一样工作,也就是说,继续推它读取的任何属性?

我认为你混淆了这一点:Struts2放在堆栈中的不是属性,而是保存这些属性的对象

让我们在jsp中说你写了什么

 <s:property value="xxx" />
这里,在第一行中,可以在堆栈中的操作中找到
sampleArray1
属性。迭代器标记然后将每个值放入值堆栈顶部的sampleArray1中,并在第二行抓取并打印。

值堆栈 Struts-2使用值堆栈来存储重要对象。ActionInstance和成员变量存储在值堆栈中,JSP可以通过值堆栈访问它

注意:值堆栈的行为类似于虚拟对象

如果两个成员变量的名称相同,值堆栈如何处理冲突? 值堆栈接收对成员变量的请求,然后从头到尾进行搜索。如果成员变量名称匹配,则将值发送到JSP。对于要访问的特定成员变量,我们必须访问或遍历对象图

<s:iterator value="sampleArray1">
  <p>item is: <s:property/></p>
</s:iterator>