gpt4 book ai didi

java - JSTL:使用 c:When 标记的字符串比较问题

转载 作者:行者123 更新时间:2023-12-01 16:02:16 24 4
gpt4 key购买 nike

使用 C:When 标记比较 2 个字符串值时遇到问题
我正在尝试如下

<c:when test="${dbUserName eq uName}">

哪里,
dbUserName =“sohail”。它正在从数据库列获取值
uName =“测试”。这实际上是登录页面的输入值
但比较总是给出正确的结果......

这是完整的代码

<%@ page contentType="text/html" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<HTML>
<body>
<c:set var='uName' value="${param.username}"/>
<c:set var='uPassword' value="${param.password}"/>
<sql:setDataSource var="db" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test" user="root" password="sohail"/>
<sql:query var="query1" dataSource="${db}"
sql="select * from login where loginID = '${uName}'">
</sql:query>
<c:forEach var="row" items="${query1.rows}">
<c:set var='dbUserName' value="${row.loginID}"/>
<c:set var='dbUserPassword' value="${row.password}"/>
</c:forEach>
<c:out value="${uName}"/>
<c:out value="${row.loginID}"/>
<c:out value="${row.password}"/>
<c:choose>
<c:when test="${dbUserName eq uName}">
<c:redirect url="profile1.jsp"/>
</c:when>
<c:otherwise>
<c:redirect url="checlLogin.jsp"/>
</c:otherwise>
</c:choose>
</body>
</html>

请建议我如何解决比较问题?

嗨,阿菲,
谢谢,你是对的。问题已解决
我刚刚修改了查询,如下所示,它工作正常

<sql:query var="query1"  dataSource="${db}"
sql="select * from login">
</sql:query>

最佳答案

您似乎已经构建了页面,使得 dbUserName 和 uName 始终相同。

<sql:query var="query1"  dataSource="${db}"
sql="select * from login where loginID = '${uName}'">

<c:set var='dbUserName' value="${row.loginID}"/>

如果您返回的登录 ID 不等于 uName 的行,您的数据库可能会出现严重问题......! (尽管 mySQL 对大小写匹配的默认处理有时很奇怪。)

您真正希望页面执行什么操作?

关于java - JSTL:使用 c:When 标记的字符串比较问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3534562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com