2013-08-01 23 views
0

尋找建議的最佳方式來實現以下:如何實現這個代碼:包含HashMap,<s:iterator>

我在我的動作類的準備HashMap中。這個散列表有兩個值,FruitType和一個布爾值。可用的水果類型取決於使用屏幕的人。布爾值也取決於使用屏幕的人。

在我的JSP我有兩種形式:

第一張表單包含可用水果類型一個<s:select>列表。 只有當水果類型對應的布爾值爲真時才需要第二種形式。 如果布爾值爲true,則啓用第二種形式,並禁用第一種形式的提交按鈕。 如果布爾值爲false,則禁用第二種形式,並啓用第一種形式的提交按鈕。

我對通過JavaScript啓用/禁用沒有麻煩。我的問題是在哪裏存儲布爾值...我有一個隱藏的輸入(isSecondFormReq)和我的選擇列表上的一個帖子(當選擇一個值時觸發)在第一種形式,計算水果布爾值是否爲真或假,但我不能更新我的隱藏輸入字段的值...

有沒有人有這樣做的更好的方式?

感謝堆。

編輯:我想,也許最好的辦法可能是使用<s:iterator>並隱藏其中id = key和value =價值...任何幫助,將不勝感激:)

+0

顯示一些代碼... –

+0

讀了兩遍,但仍然沒有完全理解,我同意@AleksandrM - 顯示一些代碼。 –

回答

0

領域的最後三次讀它,我猜你自己提出了一個解決方案,如果FruitType您可以使用解決方案,您即

create a map for fruittype,boolean and then iterate over it in the JSP, so that the 2nd form gets displayed based on the value of the selected fruittype and it's corresponding boolean

提到的我不知道你怎麼樣實現的JavaScript,但我想這個答案的完整性的緣故,我會提供一個小樣本。

<select name="fruit" id="fruit"> 
<s:iterator value="mapFruitBoolean"> 
    <option value="fruit.key" data-boolean=<s:property value="value"/>>>Fruit.value</option> 
<!-- Above fruit refers to the key of the map, and value is just a boolean 
Map<Fruit,Boolean> --> 
</s:iterator> 
</select> 

JavaScript代碼

$("#fruit").change(function(){ 
    var option = $(this).find('option:selected'); 
    if($(option).attr('data-boolean')){ 
     //Enable the submit button 
    }else{ 
    //Disable the submit button 
    } 
}); 

上面的代碼是未經測試,但我想它應該工作正常,但我想它清楚地解釋了這一概念。