$ {form.test} печатает "var", но $ {form.test == 'var'} всегда ложно - PullRequest
0 голосов
/ 24 августа 2011

, когда я пытался напечатать значение в JSP, он печатает значение с именем "var" , но когда я пытался использовать то же значение в условии if, оно, похоже, не работает , Пожалуйста, кто-нибудь, помогите мне ... :( :(

<c:out value="${form.test}" /> /* for printing and it's printing "var"*/
<c:if test="${form.test== 'var'}"> /* for if condition which is not working */

Ответы [ 2 ]

0 голосов
/ 24 августа 2011

Попробуйте:

<c:if test="${form.test eq 'var'}">
0 голосов
/ 24 августа 2011

Должно работать нормально, при условии, что эти двойные кавычки не являются частью значения (то есть вы видите var, а не "var"). Возможно, вокруг значения есть какие-то висячие пробелы?

Вы можете отладить один и другие следующими способами:

<code><pre>|<c:out value="${form.test}" />|
<! - Следует напечатать | var | ->

и

<c:out value="${fn:length(form.test)}" /> <!-- Should print 3 -->

Если это действительно пробел и вы не можете обрезать его в конце сервлета / SQL, попробуйте использовать fn:trim():

<c:if test="${fn:trim(form.test) == 'var'}">

Библиотека тегов JSTL , кстати, доступна в следующем объявлении taglib:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...