轉: Struts2 URL參數 s:if 判斷應用
(原文章也很怪異,簡單整理摘錄,希望很快幫助到需要的人)
struts的s:if標簽很怪異,下面來具體看看如何判斷URL中的參數.
1.<s:property value="#parameters.name" /><!--有值-->
2.<s:if test="#parameters.name == 'xxxx'"> </s:if><!--無值>
3<s:if test="#parameters.name.equals('xxxx')"></s:if><!--無值-->
就上面一個簡單的代碼,卻始終不能進入到IF判斷語句中,郁悶了好久,甚至在罵Struts2,一個不智能的作品。
經過大量的查找資料,直到問題發生的第三天,我回過頭來偶然又想起了這個問題,才在一個幫助文檔中發現。原來Struts2是將URL傳的參數封裝成一個數組的,也就是說你可以在一個URL傳兩個同名的參數(即?name=a&name=b),個人覺得這個做的不怎么好,因為一般在傳參的時候如果要傳數組也不會通過URL方式來處理 。既然傳遞的是一個數值,那么所有的問題就迎刃而解了。
所以上面的取參數應該改為:
<s:property value="#parametes.name[0]"/><!--有值-->
<s:if test="#parameters.name[0] == ('xxxx')"></s:if><!--無值-->
<s:if test="#parameters.name[0].equals('xxxx')"></s:if><!--無值-->
便于自己查閱,方便周圍人,希望幫助到用需要的人.