Struts2兩個Map動態比較值是否相同

需求:後臺有兩個Map,他們的Key相同,順序也相同,但是value不同,需要在傳入前臺後,遍歷其中一個Map,獲取到當前Map的值,然後根據當前Map的Key獲取另一個Map的記錄,並用js動態比較他們的不同項,然後用title屬性呈現出來。


編碼過程:第一步遍歷當前Map,代碼如下:

                         <s:iterator value="maps"  id="column" status="st">
                              <s:set name="index"><s:property value="#st.index"/></s:set>

                              <%-- Map的key  --%>

                               <td><s:property value="key"/></td>

                               <%-- 品牌名  --%>

                               <td><input type="text"   name="reports[${index}].brand"    value="<s:property value="value.brand"/>"    /></td>

                          </s:iterator>

                          此處屬性較多,只列出一個做爲顯示代表。

                          

                          第二步加上另一個Map的處理方式:

                          <s:iterator value="maps"  id="column" status="st">

                               <s:set name="baseKey"><s:property value="key"/></s:set>

                              <s:set name="index"><s:property value="#st.index"/></s:set>

                              <%-- Map的key  --%>

                               <td><s:property value="key"/></td>

                               <%-- 品牌名  --%>

                               <td><input type="text"   name="reports[${index}].brand"    value="<s:property value="value.brand"/>" base='<s:property value="bases.get(#baseKey).brand"/>'     /></td>

                          </s:iterator>

                          但是這樣base的值總是爲空,後來通過一步步測試,發現#baseKey和bases.get(#baseKey)都是有值的,

                          但是#baseKey的值不正確,後來經過進一步的測試,改爲如下代碼就Okey了:

                           <s:iterator value="maps"  id="column" status="st">

                              <s:set name="index"><s:property value="#st.index"/></s:set>

                              <%-- Map的key  --%>

                               <td><s:property value="key"/></td>

                               <%-- 品牌名  --%>

                               <td><input type="text"   name="reports[${index}].brand"    value="<s:property value="value.brand"/>"base='<s:property value="bases.get(key).brand"/>'     /></td>

                          </s:iterator>

                          

                            這樣就可獲取到兩個Map的值,接下來通過jQuery比較他們的不同即可。


 

                               

                          

                       

                      



發佈了36 篇原創文章 · 獲贊 5 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章