当前位置: 首页 > 知识库问答 >
问题:

相等字符串的JSTL if标签

闻修筠
2023-03-14

我从JSP页面上的一个对象中获得了一个变量:

<代码>

变量的值是NAT,这是正确的,我想为这个值应用某些页面元素。如何使用标签来知道大小写?我尝试了类似的方法

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

但是上面没有显示任何内容。我该怎么做?或者我可以使用Scriptlet吗。

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

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

共有3个答案

秦诚
2023-03-14

我认为其他答案忽略了关于EL表达式中使用的属性名的一个重要细节。从方法名转换为属性名的规则在java bean标准的一部分“ntrospector.decpitalize”中指定:

这通常意味着将第一个字符从大写转换为小写,但在(不常见的)特殊情况下,当有多个字符并且第一个和第二个字符都是大写时,我们将其忽略。

因此,“foBah”变为“foBah”,“X”变为“x”,但“URL”保留为“URL”。

因此,在您的情况下,JSTL代码应如下所示,请注意大写“P”:

<c:if test = "${ansokanInfo.PSystem == 'NAT'}">
史默
2023-03-14
<c:if test="${ansokanInfo.pSystem eq 'NAT'}">
微生弘
2023-03-14

尝试:

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

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

 类似资料:
  • 问题内容: 通过搜索发现了类似的问题,但我是一位新的(糟糕的)程序员,无法理解答案。 我有一个.txt文件,其中包含多个字符串,以’-‘分隔。我使用拆分将一些字符串分成变量,其中两个相等,但是在if语句中它们不相等。 这将产生以下结果: 瑞典 瑞典 没有 在两个“ Sweden”字符串之前和之后都有一个空格,并且它们都用大写字母“ S”编写,但不相等吗?我在哪里搞砸了? 问题答案: 最后一个元素包

  • 关于这里的问题 我们有两个字符串A和B,它们具有相同的超级字符集。我们需要更改这些字符串以获得两个相等的字符串。在每次移动中,我们可以执行以下操作之一: 1-交换字符串的两个连续字符 2-交换字符串的第一个字符和最后一个字符 可以在任一字符串上执行移动。为了获得两个相等的字符串,我们需要的最小移动次数是多少?输入格式和约束:输入的第一行和第二行包含两个字符串A和B。保证它们的字符超集相等。1个 看

  • 问题内容: 上面的程序输出“ true”。两者都是两个不同的标识符/对象,输出如何为“ true”? 我的理解是,JVM将为每个对象创建不同的引用,如果是这样,输出如何为真? 问题答案: Java管理文字池。它会尽可能重用这些文字。因此,这两个对象实际上是同一对象,并返回true。 我相信这叫做字符串实习

  • 问题内容: String[] letters = {“A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “L”}; 为什么是 Fk呀! 输入AL字母之一绝对不会发生? 问题答案: 字符串是对象。所述通过引用,而不是由它们的内部值进行比较的对象。 有两种解决方案: 使用method来比较两个对象的值。 使用代替。这是原始的,因此可以使用。

  • 问题内容: 如何在Java 中将字符串拆分为相等大小的子字符串。例如。大小相等的4个应该给出输出。 问题答案: 这是regex一线版: 是一个零宽度断言,它与上一个匹配结束的位置匹配。如果是以前没有的比赛,它的输入的开始,同相匹配。后面的封闭式匹配从最后一场比赛的末尾开始算起的四个字符的位置。 都是落后的,都是高级正则表达式功能,并非所有版本都支持。此外,在支持它的所有口味上实现的方式不一致。此技

  • 问题内容: 我有一个字符串,我想分成N个相等的部分。 例如,假设我有一个长度为128的字符串,我想将其分成4个长度为32的块;也就是说,第一个32个字符,然后第二个32个字符,依此类推。 我怎样才能做到这一点? 问题答案: import textwrap print textwrap.wrap(“123456789”, 2) #prints [‘12’, ‘34’, ‘56’, ‘78’, ‘9’