2016-03-07 96 views
1

我想显示一个基于foreach中的值的启用或禁用按钮。它应该检查值是否为“真” - 一个字符串并显示一个看起来可用的按钮(html按钮)。如果它是假的,它应该看起来被禁用。如果getConnectionStatus是真的使用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>与按钮应显示。

例外:

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文档一个小片段,

如果value-a是JavaBeans对象,强制值-B为String。如果value-b是value-a的可读属性,则返回get调用的结果。如果get方法抛出异常,则返回错误。

您是否尝试过用EL的隐式getter方法访问你的项目connectionStatus(删除得到并更改属性值较低的情况下)?

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

Hi..将bean类中'ConnectionStatus'变量的名称更改为'connectionStatus'并将其作为''像你说的那样工作,而不是使用'getConnectionStatus()',尽管我不明白它为什么起作用。 – Abhi

+0

我认为你不清楚如何访问JSTL中的对象属性。看看[这个](http://strutscr.uw.hu/0066.html),看看它是否有帮助。 – Shaggy