2011-03-14 2 views
8

안녕하세요!HTML 선택 상자, 서블릿에서 선택한 데이터

html의 선택 상자에 문제가 있습니다. 나는 간단한 CRUD 프로젝트의 EDIT 부분에 있으며 사용자가 편집 할 수 있기 전에 선택된 데이터가 먼저 표시되고 서블릿을 통해 데이터베이스에서 검색됩니다.

이제 선택 상자에 SELECTED (기본값) 한 데이터를 가져 오십시오. ${product.category}

나는 이것을 삽입하려고 시도했지만 작동하지 않습니다. ($ {product.category} == 1) 선택 = 옵션 1 ...

내가 중 하나에 THIS 같은 것을 본 적이 경우

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

나는 .. 이런 일을하고 싶지 포럼이지만 PHP 형식입니다. JSP로 어떻게 할 수 있습니까?

대단히 감사합니다.

답변

11

selected 속성은 HTML <option> 요소에 있어야하고 옵션 값이 일치 할 때 만 입력하면 이되어야합니다. 가장 우아한 방법은 조건 연산자 ?:을 사용하는 것입니다. 당신이 List 또는 Map 일부의 항목이있는 경우

<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> 여기서, Categoryidname 속성을 갖는다.

<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

감사합니다. Mr. BalusC. :) – newbie

+0

당신을 진심으로 환영합니다. – BalusC