私は、コードを次しているpexistingプロジェクトのJSPファイルの1 1.2.In支柱の上に働いているのに、私は2ストラットに新しいです:ストラット2のバリュースタックに関するいくつかの基本的なクエリ?
<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>
要求が法getCustomerRelations()
とgetRelationId()
を有しているCustomerRelationAction.java
が来ています。
はここに質問です: -
私は流れが、このメソッド内で4時間を来ている参照.I方法
getCustomerRelations()
内のブレークポイントを置きます。行3で2回、行4で2回。 私の理解によると、フローは3行目で1回だけになるはずです。3行目のgetCustomerRelationsを完了したら、その値を値スタックに入れないでください。 それが次に参照されることを参照してください(それは再び14行目でrefferedされています)?getCustomerRelations()
方法は、CustomerRelationData
クラスはまた、我々がどのオブジェクト上行5で値= "relationIdを参照のうえれる線 5にgetRelationId()
method.Nowが含まCustomerRelationData
オブジェクトのリストを返す(CustomerRelationAction.java又はCustomerRelationData)、getRelationId ? でもリストオブジェクトCustomerRelationDataが値のスタックに存在するかどうかわからないのですか?はいの場合は、値のスタックに入れられますか?ここでイテレータはそれから、コード
<s:property value="relationId" />
をもう一度参照して、どのオブジェクト(CustomerRelationA ction.javaまたはCustomerRelationData)、 getRelationId()メソッドが呼び出されますか?
あなたの答えと忍耐力をお寄せいただきありがとうございます。あなたが言ったように、iteratorタグは各オブジェクトをスタックの最上部に置きます。 s:propertyタグは、取り出したオブジェクトをvalue stackに入れます( '
'タグはdisplayPageの値をvalueスタックに入れます)?デバッガモードでの私の見解によると、そうではありませんでした。 –@Mach:propertyタグはvaluestack.iniの値をフェッチします。イテレータの場合は、値スタックの上にオブジェクトをプッシュして、同じものをページ内で取得できるようにします –