Soru 3.0'da Spring SimpleFormController


Bu denetleyicinin en son ilkbaharda kullanımdan kaldırıldığını ve alternatif denetleyicinin ne olduğunu merak ettiğini fark ettim.


23
2018-01-19 10:38


Menşei


Kullanımdan kaldırılan şeylerin hala Bahar 3'te çalıştığı akılda tutulursa, Spring guys, kullanımdan kaldırılmış API'ları JavaSE kullanıcılarına göre daha agresif bir hale getiriyor, yani aslında onları kaldıracaklar. - skaffman
Evet SimpleFormController artık desteklenmiyor 4.0.4.RELEASE). - Aniket Thakur


Cevaplar:


İlkbahar 3.0'da, açıklamalı basit sınıflar kullanmalısınız. @Controller. Bu denetleyici birden fazla istekte bulunabilir. Her istek kendi yöntemiyle ele alınır. Bu yöntemler açıklamalı @RequestMapping.

Yeniden düşünmeniz gereken bir şey, eski bir okulun gerçektir. SimpleFormController bir çok farklı istekleri ele alalım (en azından: formu almak için bir tane ve formu göndermek için bir saniye). Bunu şimdi elle halletmelisin. Ama inan bana daha kolay.

Örneğin, REST Style'daki bu Denetleyici, iki isteği ele alacaktır:

  • / kitap - POST: bir kitap oluşturmak için
  • / kitap / form - GET: yaratılış formu almak

Java Kodu:

@RequestMapping("/book/**")
@Controller
public class BookController {

    @RequestMapping(value = "/book", method = RequestMethod.POST)
    public String create(
        @ModelAttribute("bookCommand") final BookCommand bookCommand) {

        Book book = createBookFromBookCommand(bookCommand);
        return "redirect:/book/" + book.getId();
    }

    @RequestMapping(value = "/book/form", method = RequestMethod.GET)
    public String createForm(final ModelMap modelMap) {
        modelMap.addAttribute("all", "what you need");
        return "book/create"; //book/create.jsp
    }
}

28
2018-01-19 11:14



şerefe. Ben bu kitap takip edildi gibi benim için yeni haritalama tüm yeni benim amazon.co.uk/Spring-Action-Craig-Walls/dp/1933988134/... - jonney
hızlı soru. Bu, artık denetleyicileri xml dosyaları aracılığıyla fasulye ile eşlemek zorunda olmadığım anlamına mı geliyor? - jonney
@jonney: Evet, yeni ek açıklamalar var: @Controller, @Service, @Repository, @Autowire ve @Inject. Ancak xml'nizde bileşen taraması olarak adlandırılan bir şeyi etkinleştirmeniz gerekir. - SpringSource bloguna (2009'un sonlarına) ve Spring referansının yeni özellikler bölümüne bir göz atın. - Ayrıca yeni bir soru sormakta özgürsünüz. - Ralph
awsome. Bu şekilde kesinlikle daha kolay! İlkbahardaki diğer açıklamalara bakarım. - jonney


Açıklamalı POJO'lar kontrolörler olarak hareket edebilir; görmek @Controller.


6
2018-01-19 10:41



grr, ilk olan sensin - Sean Patrick Floyd
Yeryüzünde neden oylama yapıldıktan bir yıl sonra bu oy kullanıldı? Diğer cevaplar da reddedildi mi? - duffymo


İlkbahar 3.0'da, Denetleyicileriniz artık bir temel sınıftan miras almamalıdır. Standart yol kullanmaktır açıklamalı kontrolörler.


2
2018-01-19 10:42



Çok değil .... - duffymo
Bu yüzden, denetleyicileri xml ile eşlemek zorunda değil miyim? - jonney
@jonney tam olarak. Bunu yapmanın XML yolu, artık Spring 3 Referansında belgelenmemiştir. - Sean Patrick Floyd
DI ve yönleri ne olacak? şimdi tüm ek açıklamaları kullanarak tanımlanabilir? artık herhangi bir bahar fasulye yazmak için herhangi bir ihtiyaç var mı? - jonney
@jonney, XML'e ihtiyaç duymayan ApplicationContext uygulamaları vardır. AnnotationConfigApplicationContext. Ama genellikle, bazı XML gereklidir (ve XML'i yönetmek için Springsource Tool Suite ile aslında eğlenceli) - Sean Patrick Floyd