Pessoal estou desenvolvendo um sistema web, onde o usuário pode excluir um item de um s:select , porém preciso fazer uma confirmação de exclusão, até aí tudo bem, mas depois que o usuário der ok para exclusão eu preciso chamar uma action do struts e passar um parametro para a action, como posso resolver este problema?
Chamar Action do Struts via javascript [RESOLVIDO]
12 Respostas
isso que vc esta falando seria Ajax… use o DWR como framework!
Teria algum exemplo ?
Coloque um id no seu select e na confirmação de exclusão (botão) chame um função javascript para pegar o campo que faz referência ao objeto e chamar uma action.
Ex:
<script type="text/javascript">
function excluir(idSelect){
var slc = document.getElementById(idSelect);
var indexSelect = slc.selectedIndex;
var valueSelected = slc.options[indexSelect].value;
window.location="/app/excluir.do?idItem="+valueSelected;
}
</script>
<select ... id="itens">
....
</select>
No seu botão --> onclick=“excluir(‘itens’);”
É ± essa a ideia!
Seria isso :
window.location="../CadastrarReembolsoAction.excluirReembolso?idItem="+valueSelected;
//Somente o método
window.location="../excluirReembolso.do?idItem="+valueSelected;
Segue a minha fuction
function confirmacao() {
var resposta= confirm("Deseja remover esse registro?");
var pseq_remessa_fin_item=document.getElementById("pseq_remessa_fin_item").value;
if (resposta==true){
window.location="../excluirReembolso?pseq_remessa_fin_item="+pseq_remessa_fin_item;
}
}
Quando eu executo me traz esta mensagem na página :
type Status report
message /excluirReembolso
description The requested resource (/excluirReembolso) is not available.
Vc esta usando JSTL nas paginas JSP que possua esse codigo Javascript?
Pq caso esteja, vc tbm podera inserir um codigo abaixo que tera mais consistencia e sera menos propicio a erros, caso mude o dominio do projeto:
function confirmacao() {
var resposta= confirm("Deseja remover esse registro?");
var pseq_remessa_fin_item=document.getElementById("pseq_remessa_fin_item").value;
if (resposta==true){
// Inserindo o JSTL abaixo vc apenas cita no value o nome da url da action e nao precisara inserir uma url completa desde o http://.....
// Pois esse comando sera inserido primeiro pois vira do servidor e depois concatenado com a variavel do javascript.
window.location="<c:url value='/excluirReembolso?pseq_remessa_fin_item=' />"+pseq_remessa_fin_item;
}
}
Por acaso, na url não faltou o .do ? ou outra sintaxe para que ele chame o struts configurado no web.xml?
Na verdade eu criei uma pasta js dentro da pasta WEB-INF e criei a function lá dendo do arquivo js/funcoes.js;
Fiz desta forma que vc aconselhou mas também não funcionou ;
Até acrescentando o .do depois do método dá erro.
Pessoal ficou resolvido da seguinte forma:
No meu script ficou:
function confirmacao() {
var resposta= confirm("Deseja remover esse registro?");
var id=document.getElementById("id").value;
if (resposta==true){
window.location="ExcluirReembolso.action?pseq_remessa_fin_item=" + id;
}
}
Na Action:
public String excluirReembolso(){
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
dao.excluirReembolso(request.getParameter("pseq_remessa_fin_item"));
return "success";
}
REssucitando…
preciso mandar mais de um parâmetro, como ficaria?