Olá galera
Estou iniciando em Vraptor e estou uma dúvida. Tenho o seguinte modelo:
@Entity
public class Projeto {
@Id@Column(nullable = false, length = 50)
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Bem Simples.
E o seguinte controller:
@Resource
public class ProjetoController {
private Result result;
public ProjetoController(Result result){
this.result = result;
}
public void insert(Projeto projeto){
new ProjetoDao().insert(projeto);
result.use(Results.logic()).redirectTo(ProjetoController.class).list();
}
public void delete(Projeto projeto){
new ProjetoDao().delete(projeto);
result.use(Results.logic()).redirectTo(ProjetoController.class).list();
}
public void update(Projeto projeto){
new ProjetoDao().update(projeto);
result.use(Results.logic()).redirectTo(ProjetoController.class).list();
}
public List<Projeto> list(){
return new ProjetoDao().list();
}
}
O list.jsp, que está funcionando perfeitamente:
<table border="1" width="100%" cellpadding="10">
<tr>
<td width="30%" valign="top">
<form action="insert"/>
Projeto: <br><input name="projeto.nome"/><br>
<input type="submit"/>
</form>
</td>
<td width="70%" valign="top">
<table border="1" align="center" width="100%">
<tr><th>Nome do Projeto</th></tr>
<c:forEach var="projeto" items="${projetoList}">
<tr><td>${projeto.nome}</td></tr>
</c:forEach>
</table>
</td>
</tr>
</table>
Com este jsp eu insiro novos projetos no banco e listo em outro quadro.
Só que agora eu quero ter vários submits e usar o mesmo formulário para os métodos “delete” e “update”. Talvez eu consiga por javascript mas idéia é não usá-lo.
Como não achei mais nenhuma idéia, pensei em fazer o seguinte:
public void metodo(int m, Projeto projeto){
if (m == 1){
insert(projeto);
}
if (m == 2){
delete(projeto);
}
...
}
E assim associar no jsp:
<form action="metodo"/>
Projeto: <br><input name="projeto.nome"/><br>
<input type="submit"/>
</form>
Porém não sei como passar os parâmetros. Não sei como passar o “m” e não sei se Vraptor pegará o “projeto.nome” e popular um objeto do tipo Projeto.
Alguém já fez isso ou tem alguma idéia de como fazer? Ou um outro jeito q não seja esse…
VALEU!!!
