Boa tarde pessoal.
Seguindo as orientações da apostila fj-21 capítulo 9 MVC onde se passa um campo oculto (linha 12) para a servlet que irá criar uma instância da classe que irá executar a lógica de negócios apropriada (adicionar, remover, editar…) em tempo de execução.
Tenho a seguinte dúvida: O que eu preciso fazer para integrar essa mesma funcionalidade em primefaces?
<form action="servlet" method="post">
<p><input id="nome" type="text" aria-required="true" tabindex="1" size="22" name="nome"/>
<label for="nome"><small>name</small></label></p>
<p><input id="autenticacao" type="text" aria-required="true" tabindex="2" size="22" name="autenticacao"/>
<label for="autenticacao"><small>authentication</small></label></p>
<p><input id="senha" type="text" aria-required="true" tabindex="2" size="22" name="senha"/>
<label for="senha"><small>password</small></label></p>
<p><input id="email" type="email" aria-required="true" tabindex="2" size="22" name="email"/>
<label for="email"><small>email</small></label></p>
<p><input id="data" type="date" name="data"/>
<label for="data"><small>birthdate</small></label></p>
<p><input type="hidden" name="logica" value="AdicionaUsuarioLogic"/>
<input id="enviar" type="submit" value="Gravar" name="enviar"/></p>
</form>
[code]public class AdicionaUsuarioLogic implements LogicaInterface {
@Override
public void executa(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String nome = request.getParameter("nome");
String autenticacao = request.getParameter("autenticacao");
String senha = request.getParameter("senha");
String email = request.getParameter("email");
String data = request.getParameter("data");
Usuario usuario = new Usuario();
usuario.setNome(nome);
usuario.setAutenticacao(autenticacao);
usuario.setSenha(senha);
usuario.setEmail(email);
usuario.setDataNascimento(DataUtil.converteStringEmCalendar(data, DataUtil.DATE));
Connection connection = (Connection) request.getAttribute("conexao");
UsuarioDao dao = new UsuarioDao(connection);
dao.adiciona(usuario);
}
}[/code][code]public class ControllerServlet extends HttpServlet {
/**
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String parametro = request.getParameter("logica");
String nomeDaClasse = "br.com.sistema.logica." + parametro;
try {
Class classe = Class.forName(nomeDaClasse);
LogicaInterface logica = (LogicaInterface) classe.newInstance();
logica.executa(request, response);
} catch (Exception e) {
throw new ServletException(e);
}
}
}[/code]