2016-03-07 4 views
1

Я хочу показать кнопку включения или отключения на основе значения внутри foreach. Он должен проверить, является ли значение «истинным» - строка и отображает кнопку (кнопка html), которая выглядит включенной. Если он ложный, он должен выглядеть отключенным.Включить кнопку с выбором jstl и когда

<table border ="1"> 
     <tr class ="tableheading"> 
      <td>UniqueId</td><td>ClientId</td><td>Request Date and Time</td><td>Connection Status</td></tr> 
    <c:forEach items="${list}" var="item"> 
    <tr class ="rowstyle"> 
     <td class ="rowstyle">${item.getUniqueId()}</td> 
      <td >${item.getClientId()}</td> 
      <td >${item.getRequestDateTime()}</td> 
      <c:choose> 
       <c:when test = "${item.getConnectionStatus == true}"> 
        <td ><a href="screenviewer.html?clientID=${item.getClientId()}"><button style = "width:60px">${item.getConnectionStatus()} 
       </c:when> 
       <c:otherwise> 
        <td ><a href="screenviewer.html?clientID=${item.getClientId()}"><button disabled style = "width:60px">${item.getConnectionStatus()} 
       </c:otherwise> 
      </c:choose>--> 

      </button></a></td> 

     </tr> 
    </c:forEach> 
    </table> 

<td> с кнопкой должна отображаться, если getConnectionStatus верно.

Исключение:

org.apache.jasper.JasperException: An exception occurred processing JSP page /DisplayClientLoginDetails.jsp at line 44 

Линия 44:

44: <c:when test = "${item.getConnectionStatus == true}">

Bean класс:

public class ClientLoginBean { 
private String UniqueId,ClientId,RequestDateTime,connectionStatus; 

public String getUniqueId() { 
    return UniqueId; 
} 

public void setUniqueId(String UniqueId) { 
    this.UniqueId = UniqueId; 
} 

public String getClientId() { 
    return ClientId; 
} 

public void setClientId(String ClientId) { 
    this.ClientId = ClientId; 
} 

public String getRequestDateTime() { 
    return RequestDateTime; 
} 

public void setRequestDateTime(String RequestDateTime) { 
    this.RequestDateTime = RequestDateTime; 
} 

public String getConnectionStatus() { 
    return connectionStatus; 
} 

public void setConnectionStatus(String ConnectionStatus) { 
    this.connectionStatus = ConnectionStatus; 
} 

}

+0

Вы забыли рассказать об исключении, которое вы получили. Теперь вы получили совершенно неправильный ответ в результате съемки в темноте. Хорошее исключение уже представляет собой целый ответ. Мы способны перевести их на непрофессионалы, чтобы вы, наконец, поняли их. Просто включите их в вопрос и не игнорируйте их, как будто они украшают. – BalusC

+0

@BalusC. Я отредактировал вопрос, добавив исключение – Abhi

+0

Отлично! Однако это не совсем само исключение. Это просто неофициальное сообщение. В нем четко сказано: «Исключено». Это не исключение. Теперь найдите это исключение в журнале сервера. Как сказано, он представляет собой целый ответ сам по себе. – BalusC

ответ

0

Без полного исключения это трудно понять наверняка, я предполагаю, что это ваш геттер в вашем тестовом заявлении test = "${item.getConnectionStatus == true}". Вот небольшой отрывок из некоторых Oracle документов,

Если значение-а является JavaBeans объекта, принуждать значение-б в строку. Если value-b является читаемым свойством value-a, тогда возвращаем результат вызова get. Если метод get генерирует исключение, возвращается ошибка.

Вы пытались получить доступ к ConnectionStatus на вашем изделие с помощью неявного метода добытчика EL (удалить получить и изменить значение свойства Строчным)?

<c:when test="${item.connectionStatus == true}"> 
+0

. Привет .. изменение имени переменной ConnectionStatus в классе bean на connectionStatus и доступ к нему как '' как вы сказали, работали вместо использования 'getConnectionStatus()', хотя я не понимаю, почему это сработало. – Abhi

+0

Я думаю, что вы не знаете, как получить доступ к объектам в JSTL. Проверьте [this] (http://strutscr.uw.hu/0066.html) и посмотрите, помогает ли это. – Shaggy