Pessoal, comecei a estudar VRaptor. Comecei com JSF na época em que usava apenas jsp, porém como entrei no meio de um projeto, praticamente mexi no backend.
Agora fiz 2 projetos completos inteiramente com facelets, usando jsf 2. Confesso entao que meus conhecimentos de servlets e jsp é bem fraco.
Bom, dito isto, será que alguem poderia me passar algum link de tutorial ensinando fazer um crud completo, com implementação de view já com estilização se possível ou utilizando por exemplo JQuery UI?
Uma coisa que eu utilizava muito em jsf, e que vou precisar usar no próximo projeto (que pretendemos utilizar VRaptor) são tabelas dinâmicas. Eu vi que tem um conjunto de tags (displayTag) e que tem um componente de tabela. Porém eu achei muito fraquinha comparada as tabelas do jsf.
Não basta apenas paginação na tabela (ítem muito importante!), eu preciso além disso de que a tabela seja paginada sob demanda, ou seja, vai acessando o banco a cada requisição.
Bom, de imediato, gostaria de algumas informações, como o tutorial por exemplo e se possível gostaria de saber como é que eu posso adicionar atributos na session por exemplo, para ficarem disponíveis, não necessariamente anotar como SessionScope, mas sim algo semelhante ao jsf como
FacesContext.getCurrentInstance().getSessionMap().put(“chave”, objeto)
Estive olhando alguns links de contribuição no site da Caellum, há varios links quebrados!
Mais uma dúvida, como eu poderia fazer paginação sob demanda (a cada mudança na paginação acessar o banco e recuperar somente os registros de x a y por exemplo)?
Como eu faria para passar pelo displaytag table o número da página a ser buscada? Por exemplo, se eu clicar na página 3, como passar esta informação para o controller?
Outra dúvida, num tutorial que segui do Botelhos, ele sugeria usar as anotações para um crud:
@Put - Para editar @Delete - Para excluir @Post - Para salvar
No caso, o path para cada um deles era o mesmo, a forma como o vraptor iria identificar qual ação chamar seria de acordo com essa anotações. No entanto ele utilizou um código parecido com este:
você pode receber na lógica que gera essa tabela qual é a página:
public void lista(int pagina) {
result.include("lista", dao.lista(pagina));
}
no displaytag dá pra vc configurar ele para usar paginação externa, e se eu não me engano tem um atributo que fala qual é o nome do parametro que vai na url… se não tiver, só receber no método lista um parametro com o mesmo nome.
agora sobre usar os métodos POST, PUT e DELETE com links, isso não é possível com html puro. Links só executam requisições GET.
Mas vc pode fazer um código javascript muda isso. Em todo caso, requisições que alteram o estado da sua aplicação não deveriam ser feitas com links.