1
我想在Netbeans中製作一個簡單的MySQL,Java JDBC Web應用程序。 我希望根據當前會話中的狀態變量顯示不同的內容。我曾嘗試以下方法:<c: choose> jsp中的條件執行所有條件
首先我有一個.JSP頁面下面的代碼:
<c:choose>
<c:when test="${sessionScope.Staff.getStatus() == staff.default_staff_status}">Default staff</c:when>
<c:when test="${sessionScope.Staff.getStatus() == staff.financial_staff_status}">Financial staff</c:when>
<c:when test="${sessionScope.Staff.getStatus() == staff.legal_staff_status}">Legal staff</c:when>
<c:otherwise>Secretarial staff</c:otherwise>
</c:choose>
其次我有一個.JSP頁面下面的代碼:
<c:if test = "${sessionScope.Staff.getStatus() == Staff.default_staff_status}" >
Default staff
</c:if>
<c:if test = "${sessionScope.Staff.getStatus() == Staff.financial_staff_status}" >
Financial staff
</c:if>
<c:if test = "${sessionScope.Staff.getStatus() == Staff.legal_staff_status}" >
Legal staff
</c:if>
<c:if test = "${sessionScope.Staff.getStatus() == Staff.secretarial_staff_status}" >
Secretarial staff
</c:if>
sessionScope.Staff給對象StaffData定義爲:
public class StaffData
{
protected final byte default_staff_status = 0;
protected final byte financial_staff_status = 1;
protected final byte legal_staff_status = 2;
protected final byte secretarial_staff_status = 3;
private byte status;
//Other data
StaffData()
{
//Constructor
}
//Other methods
public byte getStatus()
{
return this.status;
}
public byte getDefault_staff_status()
{
return this.default_staff_status;
}
public byte getFinancial_staff_status()
{
return this.financial_staff_status;
}
public byte getLegal_staff_status()
{
return this.legal_staff_status;
}
public byte getSecretarial_staff_status()
{
return this.secretarial_staff_status;
}
}
通過這兩種方法,我的輸出是:
Default staff Financial staff Legal staff Secretarial staff
但是,只有其中一個應該已經打印。所有的getter函數都是公共的,並且已經正確定義。爲什麼我看到所有正在打印的行?
任何錯誤似乎還沒有應用其中提供的解決方案。 – 2014-11-21 23:12:39
我確實放入了測試屬性。我沒有將sessionScope.Staff.getStatus()更改爲Staff.status,因爲我想明確說明我正在使用會話變量。我還爲Financial_staff_status添加了getter方法。然而,這是如何解釋我得到的輸出? – TSG 2014-11-22 00:27:55