Como passar parâmetro para servlet
-
04-07-2019 - |
Pergunta
Como faço para passar um parâmetro a partir de uma página useBean em JSP para um servlet em Java? Eu tenho alguns dados em um formulário que é passado nenhum problema com um botão de envio, mas não há maneira de enviar qualquer outra coisa. Por favor ajude? Aqui está o meu código:
<input name = "deleteGameButton" type = "submit" value = "Delete"
onclick = "submitToServlet('DeleteGameServlet');">
Aqui está o javascript correspondente:
function submitToServlet(newAction)
{
document.userGameForm.action = newAction;
}
Eu gostaria que o servlet para ter acesso a userBean
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />
Solução
Você tipo de baralhar as coisas aqui.
onclick () é Javascript e executado no lado do cliente. Ele não tem como (direto) para atualização bean com escopo de sessão. Que o feijão é deixado no lado do servidor, e foi usado quando a página HTML era gerado . Para passar parâmetros ao servlet você precisa usar bons velhos campos do formulário e enviar o formulário.
Adicionar mais campos para o formulário, defina seus valores antes de enviar, em seguida, enviar.
No Servlet chamada request.getParameter ( "nome");
P.S. Para automatizar este tipo de coisas Usar STRUTS . :-) Struts faz exatamente o que você quer: antes de passar os parâmetros para a ação, ele preenche o feijão com esses parâmetros. Transparente.
Outras dicas
Depende exatamente o que você está tentando fazer. A
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />
permitirá que você use o atributo userBean da sessão em sua jsp. Se não houver um atributo userBean na sessão, ele irá criar uma nova (usando o construtor padrão para org.project.User) e colocá-lo na sessão.
Então, quando você chegar ao servlet, você pode recuperá-lo com:
User user = (User)request.getSession().getAttribute("userBean");
getServletConfig().getServletContext().getRequestDispatcher("servlet path & name");
dispatcher.forward (request, response);
Hi tentar com o seguinte tag:
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User"/>
<jsp:setProperty name="beanName" property="propertyname" value="value"/>
</jsp:useBean>
Boa sorte!