JSTL如果标记为相等的string

我的JSP页面上有一个对象的variables:

<%= ansokanInfo.getPSystem() %>

该variables的值是正确的NAT,我想为此值应用某些页面元素。 如何使用标签知道案件? 我试过类似的东西

 <c:if test = "${ansokanInfo.getPSystem() == 'NAT'}"> process </c:if> 

但是上面没有显示任何东西。 我应该怎么做? 或者我也可以使用脚本,即

 <% if (ansokanInfo.getPSystem().equals("NAT"){ %> process <% } %> 

感谢您的任何答复或评论。

尝试:

 <c:if test = "${ansokanInfo.PSystem == 'NAT'}"> 

JSP / Servet 2.4(我认为这是版本号)不支持EL中的方法调用,只支持属性。 最新的servlet容器支持方法调用(即Tomcat 7)。

 <c:if test="${ansokanInfo.pSystem eq 'NAT'}"> 

我认为其他答案会错过关于在ELexpression式中使用的属性名称的一个重要细节。 从方法名称到属性名称的转换规则在作为java bean标准一部分的“Introspector.decpitalize”中指定:

这通常意味着将第一个字符从大写字母转换为小写字母,但是在(不寻常的)特殊情况下,如果有多个字符,并且第一个字符和第二个字符都是大写字母,则我们将其单独保留。

因此“FooBah”变成“fooBah”,“X”变成“x”,但“URL”保持为“URL”。

所以在你的情况下,JSTL代码应该如下所示,注意大写'P':

 <c:if test = "${ansokanInfo.PSystem == 'NAT'}"> 

你可以使用脚本,但是,这不是要走的路。 现在在您的JSP文件中内联脚本或JAVA代码被认为是一个坏习惯。

你应该多阅读一下JSTL。 如果ansokanInfo对象在您的请求或会话范围内,则打印对象(toString()方法),如下所示:$ {ansokanInfo}可以为您提供一些基本信息。 $ {ansokanInfo.pSystem}应该调用对象的getter方法。 如果这一切正常,你可以使用这个:

 <c:if test="${ ansokanInfo.pSystem == 'NAT'}"> tataa </c:if>