оператор в JSP не работает должным образом - PullRequest
2 голосов
/ 20 января 2011

У меня есть оператор в JSP, как показано ниже:

     <% String fname = "abcd" %>

        <c:if test="${not empty fname}">
       <% out.println("not empty"+fname); %>
        </c:if> 

    <c:if test="${empty fname}">
    <% out.println(" empty"+fname); %>
    </c:if>

на отображаемой странице - emptyabcd -> означает, что он переходит ко второму, если (не пусто), даже если fname имеет значения.есть идеи почему?

Ответы [ 2 ]

5 голосов
/ 20 января 2011

JSTL не читает переменные страницы, определенные в скриптлетах - эти два стиля являются отдельными и плохо работают вместе.

Вместо

<% String fname = "abcd" %>

вам нужно что-то вроде:

<c:set var="fname" value="abcd"/>

Если вы должны использовать скриптлеты, вам нужно добавить переменную в контекст страницы, прежде чем JSTL сможет ее прочитать:

<% 
   pageContext.setAttribute("fname", "abcd");
%>
0 голосов
/ 21 января 2011

На самом деле мне нужно получить имя из сессии.
Я делаю так:
<% String fname = (String) request.getSession (). GetAttribute ((EnterpriseConstants.USER_FIRST_NAME));%>

      <c:set var = "fname" value = "<%=request.getSession().getAttribute ((EnterpriseConstants.USER_FIRST_NAME))%>";/>

имя, которое мне нужно отобразить на странице.если я в качестве имени получаю пустое имя или пробел, полученные от сеанса, пользователь может ввести его или он будет защищен.Поэтому мне нужно проверить это, прежде чем отобразить страницу.

             <c:if test="${not empty fname}">
<html:text name="form1" property="firstName" styleClass="formContent" value="<%=fname.toUpperCase()%>" style = "background:#C8C8C8"  readonly="true"  maxlength="15" size="10"/>            
</c:if>     
     <c:if test="${empty fname}">           
<html:text name="form1" property="firstName"   
      styleClass="formContent"  maxlength="15" size="10"/>
</c:if>

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

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