我有2个字符串变量' userType '和'isOpened'。 isOpened的值为'true',userType为'user',两者值为类型字符串。
当我在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)}"/>;
我的值为 user且为false。
我按照以下
<s:property value="%{#session.userType.equalsIgnoreCase('user')}"/>;
我将值设为 user and true。
我的问题是: 1)我可以直接使用字符串'user',如“ equalsIgnoreCase(user)”而不定义字符串。
定义字符串含义
使用<s:set var="user">user</s:set>
2)如果是,那么我可以像上面那样直接进行,或者必须使用像“ equalsIgnoreCase('user')”
3)然后我如何让值条件变为真,对于 'isProjectOpened'。为什么我得到一个条件是真的而另一个条件是假的。
答案 0 :(得分:0)
当你尝试
时<s:property value="%{#session.userType.equalsIgnoreCase(user)}"/>;
这意味着用户是一个变量,如果它找到变量的值,那么它只会是真的。
您正在使用的下一个地方
<s:property value="%{#session.userType.equalsIgnoreCase('user')}"/>;
这是一个字符串(在外套中),这样你就会变成真实的。
答案 1 :(得分:0)
user
是某个对象的符号。如果您没有定义它,它将被视为null
。
'user'
是一个字符串文字。
我不明白有关isProjectOpened
的问题。如果那是一个包含"true"
的字符串,那为什么它不会这样打印?但如果可以,请考虑将其更改为bool
。更适合条件。