2012-09-05 172 views
0

我的視圖模型有三個可能的值的枚舉:JSP - 如何根據枚舉選擇一個單選按鈕

public enum PollFrequency { 
    SixHours, TwentyFourHours, Weekly 
} 

public class AlertViewModel { 
    private PollFrequency pollFrequency; 
    public PollFrequency getPollFrequency(){ 
     return pollFrequency; 
    } 
    public void setPollFrequency(PollFrequency pollFrequency){ 
     this.pollFrequency = pollFrequency; 
    } 

    public AlertViewModel(){ 
     pollFrequency = PollFrequency.TwentyFourHours; 
    } 
} 

我的JSP頁面有一組三個單選按鈕:

<input checked="<c:if test="${viewModel.pollFrequency eq 'SixHours'}">checked</c:if>" type="radio" name="checkEvery" value="checkEvery6Hours" /> 6 Hours<br /> 
<input checked="<c:if test="${viewModel.pollFrequency eq 'TwentyFourHours'}">checked</c:if>" type="radio" name="checkEvery" value="checkEvery24Hours" /> 24 Hours<br /> 
<input checked="<c:if test="${viewModel.pollFrequency eq 'Weekly'}">checked</c:if>" type="radio" name="checkEvery" value="checkEveryWeek" /> Weekly 

我想根據枚舉值設置單選按鈕的checked屬性,但是總是檢查最後一個單選按鈕。我發現了一些關於如何使用springource做的線程,但我沒有使用它。有沒有簡單的解決方案?

回答

1

試試這個,

<input type="radio" <c:if test="${model.thing eq 'Thing1'}">checked</c:if> name="thing" value="thing1" /> Thing1<br /> 
<input type="radio" <c:if test="${model.thing eq 'Thing2'}">checked</c:if> name="thing" value="thing2" /> Thing2<br /> 
<input type="radio" <c:if test="${model.thing eq 'Thing3'}">checked</c:if> name="thing" value="thing3" /> Thing3 
+0

我明白這是如何工作的,但我不斷收到最後一次選擇的單選按鈕。一秒鐘,我爲發佈的格式代碼.. – ConditionRacer

+0

好吧,我不知道把代碼放在評論中,所以我編輯原始帖子,以反映您的更改在我的對象。當我運行這個時,最後一個單選按鈕總是被選中。有任何想法嗎? – ConditionRacer

+0

可能將'pollFrequency'的值設置爲'Weekly'。請刪除'checked ='。你可以重寫爲' checked ='checked'' – adatapost