2011-03-14 54 views
8

美好的一天!HTML選擇框,從servlet中選擇的數據

我在html中的選擇框有問題。我在我的簡單CRUD項目的編輯部分,並且在用戶可以編輯之前,所選擇的數據將首先顯示,然後通過servlet將其檢索到數據庫中。

現在我想要我檢索的數據是我選擇框中的SELECTED(默認)。 ${product.category}

<select size="1" name="category"> 
     <option value ="1">Dogs</option> 
     <option value ="2">Cats</option> 
     <option value ="5">Others</option> 
</select> 

我試着像這樣插入它,但它不起作用。

<select size="1" name="category" selected=${product.category}> 
     <option value ="1">Dogs</option> 
     <option value ="2">Cats</option> 
     <option value ="5">Others</option> 
</select> 

我想要做這樣的事情。如果($ {} product.category == 1),選擇=選項1 ...

我見過類似的東西THIS在一個論壇,但它是PHP格式。我怎樣才能使用JSP?

非常感謝。

回答

11

selected屬性必須在HTML <option>元素上,它應該只有在選項值匹配時才設置。最優雅的方式是使用條件運算符?:。如果你有一些ListMap項目

<select name="category"> 
    <option value="1" ${product.category == '1' ? 'selected' : ''}>Dogs</option> 
    <option value="2" ${product.category == '2' ? 'selected' : ''}>Cats</option> 
    <option value="5" ${product.category == '5' ? 'selected' : ''}>Others</option> 
</select> 

更好的方式是。例如。 a List<Category>其中Category具有idname特性。

<select name="category"> 
    <c:forEach items="${categories}" var="category"> 
     <option value="${category.id}" ${product.category == category.id ? 'selected' : ''}>${category.name}</option> 
    </c:forEach> 
</select> 

這樣你就不需要對所有選項重複相同的操作。

+0

謝謝BalusC先生。 :) – newbie 2011-03-14 11:48:07

+0

不客氣。 – BalusC 2011-03-14 12:09:18