JSP页面中比较字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP页面中比较字符串相关的知识,希望对你有一定的参考价值。

怎么在JSP页面中判断字符串变量是否相等
不允许用小脚本。只能用标签啊。。~~
不能用小脚本(就是<% %>)啊。 - -##
呵呵。解决了。
用EL

一、解决方法
字符串必须用.equals() 方法比较;
二、举例介绍
有两个字符串一个为String name=request.getParamater("username");
一个为数据库中取得的数据String namestr=rs.getString("username");
为什么明明这两个字符串相等out.print出来都为“fullbug”而用if(name==namestr)却得到得是假。
正确的字符串比较代码
if(name.equals(namestr)) out.print("they are same");
else if(!name.equals(namestr)) out.print("they are different");
else out.print("There is something wrong in here");
景安网络提供JSP服务器空间,想用java语言做网站的,可以去看看。
参考技术A 那用javascript行吗, 我可不记得jsp中有专门用于比较字符串的标签
function compare(txt)
alert(txt == "test");

<input type="text" onblur="compare(this.value);">本回答被提问者和网友采纳
参考技术B <% str1.equals(str2);%>

比较 JSP 中两个列表的元素并根据比较隐藏字段

【中文标题】比较 JSP 中两个列表的元素并根据比较隐藏字段【英文标题】:Compare elements of two lists in JSP and hide fields based on comparison 【发布时间】:2020-06-15 13:25:10 【问题描述】:

我有两个列表。两者都有字符串消息。列表 A 包含所有消息,列表 B 包含列表 A 中存在的少量消息。 我正在迭代列表 A 和列表 B。尝试根据比较来比较和打印消息。如果两个列表中都存在列表消息,我将隐藏它以显示它。自定义列表给出了传递给方法以检索完整消息的键。列表中的两条消息都相同,但比较未按预期工作。请提出建议。

代码如下:

           for(String testMsg:testPages.get(testAlertPage))

                for(int i=0; i < customList.size(); i++) 
                    if(testMsg.equals(retrieve(customList.get(i))))

                        %>
                        <p class="paragraph" style="display:none"><%=testMsg %></p><br>
                   <%                   
                    else
                    %>
                        <p><%=testMsg %></p><br>
                   <%                              
                    
                    

                %>

            

【问题讨论】:

假设字符串具有 exact 相同的内容,那么您可以执行if(customList.contains(testMsg)) 而不是自己迭代,这实际上是相同的。如果内容不同,那么这将不起作用,但equals() 也不会(如果大小写是唯一的区别,equalsIgnoreCase() 可能会起作用)。除此之外,如果你想隐藏它,为什么还要使用 display:none 来渲染消息? 顺便说一句,“但不知何故,比较没有按预期正常工作。” - 请记住,我们无法猜测您到底期望什么以及会发生什么,因此请将该信息添加到您的问题中,最好附上一些示例。 【参考方案1】:

通过这些嵌套循环,您可以将第一个列表中的每条消息与customList 中的all 消息进行比较,如果消息与那里的 any 元素不同,则显示它们.相反,对于每条消息,您应该只在它存在于customList 时才显示它:

<%
for (String testMsg : testPages.get(testAlertPage)) 
    if (customList.contains(testMsg)  
 %>
     <p class="paragraph" style="display:none"><%=testMsg %></p><br>
<%                   
     else 
%>
    <p><%=testMsg %></p><br>
<%
    
%>

注意:您应该将customList 替换为Set 以获得更好的性能。

【讨论】:

我同意你的看法。我以前也尝试过同样的方法。但问题是我的清单有钥匙。然后我将这些键传递给一个方法,然后我得到完整的消息,我正在与其他列表元素进行比较。由于这个原因,我使用了两个 for 循环。在自定义列表的迭代之后,我得到了用于检索完整消息的密钥。代码 sn-p 下面: if(testMsg.equals(retrieveMsg(customList.get(i)))) 请提出任何可能的方法。

以上是关于JSP页面中比较字符串的主要内容,如果未能解决你的问题,请参考以下文章

JSP中如何比较String类型的时间大小

比较 JSP 中两个列表的元素并根据比较隐藏字段

HTML和JSP页面的比较

在 JSTL/EL 中,枚举到字符串的比较究竟应该如何工作?

EL/JSTL-jsp页面更简单的输出方式

jsp页面中比较“接收数据”与“页面循环数据”是否相等