今天在struts2的iterator tag 和 expression 上花了很多時間, 不過總算搞定了, 也不算白忙一場。
TEST<br/><br /><s:if test="#application.dic != null"><br /> Dictionary is there!<br /></s:if><br /><s:else><br /> Dictionary is empty!<br /></s:else><br /><br/><br /><s:property value="#application.dic.keys"/><br /><br/><br /><pre><br />[s:iterator value="#application.dic" id="dicitem"]<br /> [s:property/],<br /> Key=[s:property value="key"/],<br /> Value=[s:property value="value"/],<br /> Dynamic access='[s:property value="#application.dic[key]"/]'[br/]<br /> [if you use #key here, it won't work!]<br />[/s:iterator]<br /></pre><br /><s:iterator value="#application.dic" id="dicitem"><br /> <s:property/>,<br /> Key=<s:property value="key"/>,<br /> Value=<s:property value="value"/>,<br /> Dynamic access='<s:property value="#application.dic[key]"/>'<br/><br /></s:iterator><br /><br/><br />===========TEST MAP WITH KEY IS STRING TYPE===========<br /><br/><br /><pre><br />[s:set name="mapKey" value="%{/"1/"}"/]<br />[s:property value="mapKey"/][br/]<br />[s:property value="#mapKey"/][br/]<br />[s:property value="#application.dic"/] OK [br/]<br />[s:property value="%{#application.dic}"/] OK [br/]<br />Dynamic access='[s:property value="#application.dic[#mapKey]"/]'[br/]<br />Dynamic access='[s:property value="#application.dic[mapKey]"/]'[br/]<br /></pre><br /><s:set name="mapKey" value="%{/"1/"}"/><br /><s:property value="mapKey"/><br/><br /><s:property value="#mapKey"/><br/><br /><s:property value="#application.dic"/> OK <br/><br /><s:property value="%{#application.dic}"/> OK <br/><br />Dynamic access='<s:property value="#application.dic[#mapKey]"/>'<br/><br />Dynamic access='<s:property value="#application.dic[mapKey]"/>'<br/><br />===========TEST MAP WITH KEY IS INTEGER TYPE===========<br /><br/><br /><pre><br />[s:set name="intKeyMap" value="/#{1:'foovalue', 2:'barvalue'}"/]<br />[s:iterator value="intKeyMap"]<br /> Key=[s:property value="key"/],<br /> Value=[s:property value="value"/][br/]<br />[/s:iterator]<br />Dynamic access='[s:property value="/#intKeyMap[1]"/]'[br/]<br /></pre><br /><s:set name="intKeyMap" value="#{1:'foovalue', 2:'barvalue'}"/><br /><s:iterator value="intKeyMap"><br /> Key=<s:property value="key"/>,<br /> Value=<s:property value="value"/><br/><br /></s:iterator><br />Dynamic access='<s:property value="#intKeyMap[1]"/>'<br/>