2016-03-07 121 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

相關問題