【问题标题】:Struts tag "if test" in jspjsp中的Struts标签“if test”
【发布时间】:2012-05-02 11:28:33
【问题描述】:

我在 jsp 文件中编写了一个条件,根据该条件显示图像。它是这样的。

<s:if test='#session.member.memberisadmin == "Y" 
  && #session.member.hasPermission("Update access to white list terms")   =="true" '>

<a href="<gs:url action="listLabs" namespace="/labs"/>"><img src="<gs:url  
value="/images/labs/labs-48px.png"/>" alt="General Sentiment Labs"  style="margin-
bottom:5px;" /></a>

</s:if>

问题在于第二个条件 session.member.haspermission,因为当我使用 ||(or) 而不是 &&(and) 时它工作正常。请为此建议我一个解决方案。

【问题讨论】:

  • 使用 || 时有效因为第一个条件为真。使用 && 时失败,因为第二个条件为假。那你能解释一下到底是什么问题吗?
  • 值是多少。恕我直言,确定用户是否有权限并在其中设置一个值并在 jsp 中进行比较。
  • 当我将第二个条件的值单独分配给一个 javascript 变量时,我在 netbeans ide 中在线出现红色错误... var result = ""

标签: jsp struts2


【解决方案1】:

member.hasPermission() 方法的结果是什么类型? 如果它返回boolean,那么你的桅杆像这样检查它

&lt;s:if test='#session.member.memberisadmin == "Y" &amp;&amp; #session.member.hasPermission("Update access to white list terms")'&gt;

【讨论】:

  • Re: (1),你可以在OGNL表达式中使用==来比较字符串。请参阅OGNL language guide operators section。
  • 是的,你是对的。 “如果它们是同一个对象或者 equals() 方法说它们相等,那么它们是相等的。”不知道,谢谢。
  • 方法 member.hasPermission() 返回布尔值,即 true 或 false...
  • @Sangram Anand 所以,不要使用这个 '== "true"' 部分。你试图比较布尔值和字符串,不要这样做)你已经有一个布尔值 - 不需要比较。
猜你喜欢
  • 2011-04-03
  • 2012-01-29
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
  • 2010-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多