JBOSS 點(diǎn)滴

          豐豐的博客

          Sturts tag 中l(wèi)ogic:present 和logic:empty 的區(qū)別

          logic:present 和 logic:empty他們的用法大致相同,唯一的不同點(diǎn)是:兩者在對(duì)空字符串的處理上存在著不同。


          下面為index.jsp中的代碼:

           1 <logic:notPresent name="users">
           2  notpresent
           3 </logic:notPresent>
           4 <logic:notEmpty name="users">
           5  notempty
           6 </logic:notEmpty>
           7 <logic:empty name="users">
           8  empty
           9 </logic:empty>
          10 <logic:present name="users">
          11  present
          12 </logic:present>

          當(dāng)?shù)谝淮卧L問該JSP的時(shí)候,由于users沒有定義,并且也不在page,request,session,application任何一個(gè)作用域中,因此輸出的結(jié)果為notpresent,empty。

          下面我們?cè)黾右粋€(gè)action,讓他在index.jsp之前執(zhí)行,然后再跳轉(zhuǎn)到index.jsp中,同時(shí)在該action的execute方法中增加如下代碼:
           
          1String userName = "";
          2request.setAttribute("users", userName);
          3return new ActionForward("/index.jsp");
          4 這里將userName保存在request中,key為users,再將請(qǐng)求轉(zhuǎn)發(fā)至index.jsp中,但是userName的值為一個(gè)空字符串,轉(zhuǎn)發(fā)過后,輸出的值為:empty,present

          這里我們?cè)僮鲆淮胃膭?dòng),將action的execute方法中的代碼改為:

          1String userName = null;
          2request.setAttribute("users", userName);
          3return new ActionForward("/hello.jsp");
          4 不同的是userName 不再為空字符串了,而是null值,當(dāng)轉(zhuǎn)發(fā)至index.jsp后,輸出的值為:notpresent,empty 。

          對(duì)比這幾次改動(dòng),我們可以得出結(jié)論:

          對(duì)于沒有在page,request,session,application中定義或者是沒有分配內(nèi)存空間(null值)的變量,這兩個(gè)標(biāo)記處理的方法是一致的,都會(huì)認(rèn)為此變量不存在(notpresent)或者為空(empty)。而對(duì)于空字符串""值,他們的處理就不一樣了,logic:present 標(biāo)記認(rèn)為空字符串仍然是存在的,也就是說,只要是引用了一塊內(nèi)存空間的變量,logic:present 就會(huì)返回present ;而logic:empty則認(rèn)為空字符串仍然為空,由此得出,在logic:empty看來,變量不僅僅要引用一塊內(nèi)存空間,而且該地址空間的值不能為空字符串,否則都認(rèn)為該變量為空,都會(huì)返回empty

          posted on 2010-01-12 10:32 半導(dǎo)體 閱讀(307) 評(píng)論(0)  編輯  收藏 所屬分類: Eclipse

          主站蜘蛛池模板: 积石山| 惠东县| 彰武县| 马尔康县| 清水县| 来安县| 离岛区| 卫辉市| 邵东县| 芷江| 安乡县| 鲁山县| 象州县| 东明县| 巴东县| 芦山县| 阳新县| 浙江省| 松滋市| 宁城县| 鄯善县| 海晏县| 汝阳县| 兰州市| 五指山市| 永吉县| 达日县| 荆门市| 汉沽区| 建阳市| 普洱| 宿州市| 红安县| 娄烦县| 睢宁县| 汝南县| 南川市| 蕲春县| 南宁市| 京山县| 南安市|