[RESOLVIDO] jstl + checkbox + banco de dados

7 respostas
Luana_Lobao

Olá gente, tô começando a usar jstl agora, e tenho uma dúvida básica. :oops:
No código abaixo, tenho a variável chamada "emplist" que traz do banco uma lista de empregados, alguns desses empregados estão com o campo 'typeUser' igual a 1. Que significa que ele é Administrador. (1 = admin e 0 = nao é admin). Como faço pra minha lista carregar na .jsp com os checkbox marcados, caso o empregado seja administrador?

Alguma luz?

<tbody id="user"> 
                      <%cont = 0; %>
					 <c:forEach var="emplist" items="${employees}" varStatus="status">                        
                         <%if (cont % 2 == 0){ %>
					 <tr class="odd">
					 <%}else{ %>
					 <tr class="even">
					 <% }%>
                            <td>
                            	<input value="" id="TYPEADMIN" class="typeadmin" type="checkbox" />
                           	</td>
                            <td><a href="#" >${emplist.loginNokia}</td>
                            <td><a href="#" >${emplist.name}</td>
			                <td><a href="#" >${emplist.email}</td>                              
                         </tr>
                         <%cont++; %>
                         </c:forEach>
                    </tbody>

7 Respostas

M

Eu não lembro muito bem como funciona JSTL mas acho que a idéia é essa:

<input value="" id="TYPEADMIN" class="typeadmin" type="checkbox"
<c:if test="${emplist.typeUser == 1}">
  checked
</c:if>
 />
Luana_Lobao

Pois é, tbm achei que fosse assim e fiz algo parecidíssimo com o que fez, mas nao funcionou.
Minha .jsp continou vindo com os checkbox desmarcados.

M

pode postar o que você fez?

Luana_Lobao

Antes tava assim (parecido com o que falou)

<tbody id="user"> 
                      <%cont = 0; %>
					 
					<c:forEach var="emplist" items="${employees}" varStatus="status">

						<%if (cont % 2 == 0){ %>
							<tr class="odd">
						<%}else{ %>
							<tr class="even">
						<% }%>
                            <td>
                            	<input type="checkbox" id="TYPEADMIN" class="typeadmin"
									<c:if test="$emplist.typeUser==1}">
										checked="checked" 
									</c:if>
								/>
                           	</td>
                            <td><a href="#" >${emplist.loginNokia}</td>
                            <td><a href="#" >${emplist.name}</td>
							<td><a href="#" >${emplist.email}</td>                              
                         </tr>
                         <%cont++; %>
                         </c:forEach>
                    </tbody>

Ai andei olhando por ai, e falaram que essa instrução "$emplist.typeUser==1" nao era aceita. Que o valor vindo daqui "emplist.typeUser" precisava ser atribuído a uma variável, ai essa variável que entraria na verificação. Ai mudei isso e o código ficou assim:

<tbody id="user"> 
                         <%cont = 0; %>
					 
				<c:forEach var="emplist" items="${employees}" varStatus="status">

				<c:set var="typeEmployee" value="${emplist.typeUser}" />                    

				    <%if (cont % 2 == 0){ %>
				    <tr class="odd">
				     <%}else{ %>
				     <tr class="even">
				    <% }%>
                            <td>
                            <input type="checkbox" name="${typeEmployee.typeuser}" id="TYPEADMIN" class="typeadmin"
					            <c:if test="${typeEmployee==1}">
					                 	checked="checked" 
				                    </c:if>
			       />
                             </td>
                            <td><a href="#" >${emplist.loginNokia}</td>
                            <td><a href="#" >${emplist.name}</td>
					                   <td><a href="#" >${emplist.email}</td>                              
                         </tr>
                         <%cont++; %>
                         </c:forEach>
                    </tbody>

Mas ainda não adiantou... continua vindo desmarcado... :?

M

Olha só, no primeiro trecho de código que vc postou o test do c:if tá faltando uma chave { está assim $emplist e devia ser ${emplist

vinicius.martinez

Luana…

tenta o seguinte:

<c:forEach var="emplist" items="${employees}">
<tr>
<td><input value="" id="TYPEADMIN" class="typeadmin" type="checkbox" checked="<c:if test='${emplist.typeUser == 1}'>"
<td><a href="#" >${emplist.loginNokia}</td>  
<td><a href="#" >${emplist.name}</td>  
</tr>
</c:forEach>
Luana_Lobao

Oie gente, ó muito obrigada pelas dicas. Consegui resolver com o seguinte:

<tbody id="user"> 
                      <%cont = 0; %>
					 
					<c:forEach var="emplist" items="${employees}" varStatus="status">

					<c:set var="typeEmployee" value="${emplist.typeUser}" />                    

						<%if (cont % 2 == 0){ %>
							<tr class="odd">
						<%}else{ %>
							<tr class="even">
						<% }%>
                            <td>
                            	
                   <c:choose>
							<c:when test="${typeEmployee=='1'}">
								<input type="checkbox" id="user" class="typeadmin" checked/> 
							</c:when>
							<c:otherwise>
								<input type="checkbox" id="user" class="typeadmin" /> 
							</c:otherwise>
						</c:choose>
 			
                           	</td>
                            <td><a href="#" >${emplist.loginNokia}</td>
                            <td><a href="#" >${emplist.name}</td>
							<td><a href="#" >${emplist.email}</td>                              
                         </tr>
                         <%cont++; %>
                         </c:forEach>
                    </tbody>

Obrigada a todos... o/ :D

Criado 15 de janeiro de 2010
Ultima resposta 15 de jan. de 2010
Respostas 7
Participantes 3