使用C比较2个字符串值时遇到问题:标签
时
我正在尝试如下
<c:when test="${dbUserName eq uName}">
其中,
dbUserName = “sohail”
。它是从db列中获取值的
uName = “test”
。这实际上是登录页面上的输入值
但比较总是给出结果真实......
这是完整的代码
<%@ 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>
请建议我如何解决比较问题?
嗨,Affe,
谢谢,你是对的。问题已经解决了
我刚刚修改了查询如下,它工作正常
<sql:query var="query1" dataSource="${db}"
sql="select * from login">
</sql:query>
答案 0 :(得分:1)
您似乎已经构建了页面,使得dbUserName和uName将始终相同。
<sql:query var="query1" dataSource="${db}"
sql="select * from login where loginID = '${uName}'">
<c:set var='dbUserName' value="${row.loginID}"/>
如果您使用不等于uName的loginID返回行,那么您的数据库会出现问题..... (mySQL有时奇怪的默认处理案例匹配不能承受。)
你真正希望页面做什么?