簡體   English   中英

如何使用struts2 ognl比較字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM