galera, preciso pegar o item selecionado no drop down dá página HTML, e com base no dado obtido, determinar se perfil vai ser igual a 0 ou 1, mas o servlet nem ao menos está conseguindo obter algum valor de name=“perfil” dá página HTML, alguém sabe o que pode estar errado?
desde já obrigado!!!
A parte do select option na página html:
<label for="perfil">Selecionar perfil</label> <select
class="form-control" id="perfil" name="perfil" type="text">
<option>Administrador</option>
<option>Professor</option>
</select>
</div>
O método doPost do servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
int perfil = 0;
String matricula = request.getParameter("matricula");
System.out.println(request.getParameter("perfil"));
if(request.getParameter("perfil").equals("Administrador"))
perfil = 1;
if(request.getParameter("perfil").equals("Professor"))
perfil = 0;
Professor p = new Professor(matricula, perfil);
ProfessorService ps = new ProfessorService();
ps.cadastrar(p);
request.setAttribute("professor", p);
RequestDispatcher dispatcher = request.getRequestDispatcher("CadastrarProfessor.jsp");
dispatcher.forward(request, response);
}
Mike
Abril 23, 2019, 6:45pm
#2
cscalea:
A parte do select option na página html:
<label for="perfil">Selecionar perfil</label> <select
class="form-control" id="perfil" name="perfil" type="text">
<option>Administrador</option>
<option>Professor</option>
</select>
</div>
Remove o type=“text” do seu select e coloca a propriedade value no seu option com o valor 0 e 1
Exemplo:
<option value="2">Exemplo 1</option>
<option value="3">Exemplo 2</option>
1 curtida
Eai Mike, obrigado pela ajuda, deu certo, agora está inserindo, porém, independente do que está selecionado, o perfil fica com o valor 0… vou ver se encontro o pq desse erro, mas claro, se for algo óbvio pra você e vc achar necessário, aceito mais essa ajuda rápida
Consegui arrumar já, agora está inserindo correto, se é admin, o banco recebe 1 no perfil, se for professor, o banco recebe 0 no perfil…
ficou assim:
Index.html:
<label for="perfil">Selecionar perfil</label> <select
class="form-control" id="perfil" name="perfil">
<option value="0">Professor</option>
<option value="1">Administrador</option>
</select>
</div>
Método doPost do servlet ficou assim:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
int perfil = Integer.parseInt(request.getParameter("perfil"));
String matricula = request.getParameter("matricula");
System.out.println(request.getParameter("perfil"));
Professor p = new Professor(matricula, perfil);
ProfessorService ps = new ProfessorService();
ps.cadastrar(p);
request.setAttribute("professor", p);
RequestDispatcher dispatcher = request.getRequestDispatcher("CadastrarProfessor.jsp");
dispatcher.forward(request, response);
}
essa é a página jsp pra quando um professor é cadastrado…
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ page import="model.Professor"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>professor cadastrado</title>
</head>
<body>
<p>Professor cadastrado:</p>
<p>Matrícula: ${professor.matricula};</p>
<p>Perfil: ${professor.perfil};</p>
<p>professor cadastrado com id: ${professor.id};</p>
</body>
</html>
Agora que consegui pegar do e dizer se perfil receberia 0 ou 1, tem como, para mostrar o professor q foi cadastrado, pegar o texto “Administrador” ou “Professor” selecionado ?
e esse Id também está sempre mostrando 0… mas sei q tem uma string sql que mostra o último id inserido no banco