Your SlideShare is downloading. ×
0
Spring Web MVC	                   Eder Magalhães                   eder@yaw.com.br                 twitter.com/edermag    ...
Spring Framework para Web! Spring Web MVC!   Spring Web Flow!   Spring Faces!   Spring JavaScript                         ...
Spring Web MVC Flexível e sofisticado framework para desenvolvimento de aplicativos Web em Java, seguindo a estrutura Mode...
Por falar em MVC, camadas...            Presenta)on	                  Web	                                Model	          ...
Uma (re)visão sobre MVC                          Globalcode	  –	  Open4education
Features!     Controllers e Form-Beans são POJOS;!     Validadores e Conversores;!     Suporte a IoC / DI (Core Spring);! ...
Demonstração               Globalcode	  –	  Open4education
Criando um Controller                                   http://<host>/<appcontext>/produtos@Controller@RequestMapping("/pr...
Mais flexibilidade c/ RequestMapping                                     http://<host>/<appcontext>/produtos/20@Controller...
Injeção de Dependência@Controller@RequestMapping("/produtos")public class ProdutoController {    @Autowire    private Prod...
Acessando atributos na Session@Controller@RequestMapping("/produtos")@SessionAttribute("user")public class ProdutoControll...
Trabalhando com a Request@Controller@RequestMapping("/produtos")public class ProdutoController {    @RequestMapping("reque...
Binding do view com model@Controller@RequestMapping("/produtos")public class ProdutoController {    @RequestMapping(method...
Validaçãopublic class Produto {    @NotEmpty    private String nome;    @NumberFormat(pattern="$###,#0")    private Double...
RESTful@Controller@RequestMapping("/produtos")public class ProdutoController {    @RequestMapping(value="atualizar", metho...
Render Response@Controller@RequestMapping("/produtos")public class ProdutoController {    @RequestMapping(value="/{id}",me...
JSONpublic class ProdutoController {    @RequestMapping(value = "/status", method=RequestMethod.GET)    public @ResponseBo...
Custom tags <JSP><%@ taglib uri="http://www.springframework.org/tags" prefix="s"%><%@ taglib uri="http://www.springframewo...
O que mais?!   @RequestHeader!   @RequestBody!   @CookieValue!   @ExceptionHandler!   MultipartFile!   Etags / HttpEntity ...
Mais informações!     http://www.springsource.org/documentation!     http://static.springsource.org/spring/docs/3.0.x/refe...
Follow!   @springrod!   @kdonald!   @poutsma!   @benalexau!   @youandwe!   @globalcode                  Globalcode	  –	  O...
Obrigado !                      Eder Magalhães               eder@yaw.com.br             twitter.com/edermag             G...
Upcoming SlideShare
Loading in...5
×

Introducao ao Spring Web MVC

3,663

Published on

Spring Web MVC é um sofisticado framework para desenvolvimento de aplicativos web. A apresentação ilustra fundamentos introdutórios e características do framework.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,663
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
117
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Introducao ao Spring Web MVC"

  1. 1. Spring Web MVC   Eder Magalhães eder@yaw.com.br twitter.com/edermag Globalcode  –  Open4education
  2. 2. Spring Framework para Web! Spring Web MVC!   Spring Web Flow!   Spring Faces!   Spring JavaScript Globalcode  –  Open4education
  3. 3. Spring Web MVC Flexível e sofisticado framework para desenvolvimento de aplicativos Web em Java, seguindo a estrutura Model View Controller. “Open  for  extension,  closed  for  modifica8on”   Bob  Mar8n,  the  open-­‐closer  principle   Globalcode  –  Open4education
  4. 4. Por falar em MVC, camadas... Presenta)on   Web   Model   Service   Persistence   Globalcode  –  Open4education
  5. 5. Uma (re)visão sobre MVC Globalcode  –  Open4education
  6. 6. Features!   Controllers e Form-Beans são POJOS;!   Validadores e Conversores;!   Suporte a IoC / DI (Core Spring);!   Flexibilidade em Mapping Request + Render Response!   Arquitetura RESTFull;!   Suporte a JSR 303;!   Exception Handling;!   Favorece Testes;!   Plugável a outras tecnologias Web;!   Annotation Driven Development; Globalcode  –  Open4education
  7. 7. Demonstração Globalcode  –  Open4education
  8. 8. Criando um Controller http://<host>/<appcontext>/produtos@Controller@RequestMapping("/produtos")public class ProdutoController { @RequestMapping public String lista() { return "lista"; }} lista.jsp   Globalcode  –  Open4education
  9. 9. Mais flexibilidade c/ RequestMapping http://<host>/<appcontext>/produtos/20@Controller@RequestMapping("/produtos")public class ProdutoController { @RequestMapping(value="/{id}",method=RequestMethod.GET) public String exibe(@PathVariable("id") Integer id) { //... } @RequestMapping(params = "find=byDesc", method=RequestMethod.GET) public String filtraPorDescricao(@RequestParam String desc) { //... }} http://<host>/<appcontext>/produtos?find=byDesc&desc=Livro Globalcode  –  Open4education
  10. 10. Injeção de Dependência@Controller@RequestMapping("/produtos")public class ProdutoController { @Autowire private ProdutoService service; //...} @Component public class ProdutoServiceImpl implements ProdutoService { //... } Globalcode  –  Open4education
  11. 11. Acessando atributos na Session@Controller@RequestMapping("/produtos")@SessionAttribute("user")public class ProdutoController { @RequestMapping(method=RequestMethod.DELETE) public String delete(Long id, @ModelAttribute("user") String username) { // ... }} Globalcode  –  Open4education
  12. 12. Trabalhando com a Request@Controller@RequestMapping("/produtos")public class ProdutoController { @RequestMapping("requestValues") public String requestValues(HttpServletRequest req, Locale locale) { //... }} Globalcode  –  Open4education
  13. 13. Binding do view com model@Controller@RequestMapping("/produtos")public class ProdutoController { @RequestMapping(method=RequestMethod.GET) public String formNovoProduto(Model model) { model.addAttribute(new Produto()); return ”novo”; novo.jsp   } @RequestMapping(method=RequestMethod.POST) public String salvar(Produto produto) { //... }} Globalcode  –  Open4education
  14. 14. Validaçãopublic class Produto { @NotEmpty private String nome; @NumberFormat(pattern="$###,#0") private Double preco; //...} public class ProdutoController { @RequestMapping(method=RequestMethod.POST) public String salvar( @Valid Produto p, BindingResult result) { //... } }   Globalcode  –  Open4education
  15. 15. RESTful@Controller@RequestMapping("/produtos")public class ProdutoController { @RequestMapping(value="atualizar", method=RequestMethod.PUT) public String atualizar(Produto produto) { //... } @RequestMapping(value="delete", method=RequestMethod.DELETE) public String delete(Produto produto) { //... }} //view jsp <form:form action=“./produtos/delete“ method="DELETE"> ... </form:form> //fake   Globalcode  –  Open4education
  16. 16. Render Response@Controller@RequestMapping("/produtos")public class ProdutoController { @RequestMapping(value="/{id}",method=RequestMethod.GET) public String exibeProduto(@PathVariable("id") Integer id, Model model) { //... return "produto"; } @RequestMapping(params = "find=byId", method=RequestMethod.GET) public @ResponseBody Produto getProdutoPorId( @RequestParam Long id) { Produto produto = service.findById(id); return produto; }} Globalcode  –  Open4education
  17. 17. JSONpublic class ProdutoController { @RequestMapping(value = "/status", method=RequestMethod.GET) public @ResponseBody String getStatusProduto(Integer idProd) { return service.situacaoEmEstoque(idProd); }} //view jsp usando JQuery function checkStatusProduto() { $.getJSON("produtos/status", { idProd: $(#inputId).val }, function (status) { $(#lStat).appendHtml("<h6>"+status+"</h6>"); });   }   Globalcode  –  Open4education
  18. 18. Custom tags <JSP><%@ taglib uri="http://www.springframework.org/tags" prefix="s"%><%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> ... <s:url value="/produtos/novo" var="save_form_url"/> <form:form id="form" method="post" action="${save_form_url}" modelAttribute="produto" cssClass="cleanform"> <form:label path="descricao“>Descricao</form:label> <form:input path="descricao" /> ... </form:form> ... Globalcode  –  Open4education
  19. 19. O que mais?!   @RequestHeader!   @RequestBody!   @CookieValue!   @ExceptionHandler!   MultipartFile!   Etags / HttpEntity / ResponseEntity Globalcode  –  Open4education
  20. 20. Mais informações!   http://www.springsource.org/documentation!   http://static.springsource.org/spring/docs/3.0.x/reference/mvc.html!   http://blog.springsource.com/2009/03/08/rest-in-spring-3-mvc/!   http://src.springsource.org/svn/spring-samples/mvc-showcase!   http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/!   http://blog.springsource.com/2011/01/04/green-beans-getting-started-with-spring-mvc/!   http://blog.globalcode.com.br/search/label/Spring!   http://www.springbrasil.com.br/ Globalcode  –  Open4education
  21. 21. Follow!   @springrod!   @kdonald!   @poutsma!   @benalexau!   @youandwe!   @globalcode Globalcode  –  Open4education
  22. 22. Obrigado ! Eder Magalhães eder@yaw.com.br twitter.com/edermag Globalcode  –  Open4education
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×