JSTL: проблема сравнения строк при использовании тега c: When - PullRequest
0 голосов
/ 21 августа 2010

Возникает проблема при сравнении двух значений строк с использованием тега C: When
Я пытаюсь как следует

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

Где,
dbUserName = “sohail”. Извлекает значение из столбца БД
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>  

Пожалуйста, предложите, как я могу исправить проблему сравнения?

Привет Аффе,
Спасибо, ты прав. Проблема была решена
Я просто изменил запрос, как следует, и он работает нормально

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

1 Ответ

1 голос
/ 21 августа 2010

Вы, кажется, структурировали страницу таким образом, что dbUserName и uName всегда будут одинаковыми.

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

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

Что-то было бы очень неправильно с вашей базой данных, если бы вы вернули строку с логином, который не равен uName .....! (иногда нечетная обработка по умолчанию совпадений регистров в mySQL не выдерживает.)

Что вы действительно хотите, чтобы страница делала?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...