[英]how does string comparison work using struts2 ognl?
我有2個字符串變量' userType '和'isOpened'。 isOpened的值是“真”並且用戶類型是“用戶”, 這兩個值是字符串類型 。
當我打印本就JSP我得到。
<s:property value="%{#session.isProjectOpened}"/>;
<s:property value="%{#session.isProjectOpened.equalsIgnoreCase(true)}"/>;
我得到兩個值都是真實的。
而當我使用
<s:property value="%{#session.userType}"/>;
<s:property value="%{#session.userType.equalsIgnoreCase(user)}"/>;
我得到了價值用戶和錯誤。
只要使一個小的變化如下<s:property value="%{#session.userType.equalsIgnoreCase('user')}"/>;
我得到的價值觀是用戶和真實的。
我的問題是:1)我可以直接使用字符串“ user”,例如“ equalsIgnoreCase(user) ”,而無需定義字符串。
使用<s:set var="user">user</s:set>
定義字符串的含義
2)如果是,則可以我直接做到像上面我已經完成,或者它必須使用單引號這樣進行“equalsIgnoreCase(‘用戶’)”
3) 然后我怎么得到的值條件是真實的,為“isProjectOpened”。 為什么我要使一個條件為真,而另一個條件為假 。
當你嘗試
<s:property value="%{#session.userType.equalsIgnoreCase(user)}"/>;
這意味着用戶是一個變量,如果找到變量的值,則只有它為true。
在下一個位置,您將使用<s:property value="%{#session.userType.equalsIgnoreCase('user')}"/>;
那是一根繩子(外套),這樣您就可以成為真正的谷歌。
user
是某些對象的符號。 如果未定義,則將其視為null
。
'user'
是一個字符串文字。
我不了解有關isProjectOpened
的問題。 如果那是一個持有"true"
的字符串,那么為什么它不能這樣打印呢? 但是如果可以的話,考慮將其更改為bool
。 更好的條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.