ho notato che questo controller è stato deprecato nell'ultima primavera e si chiedeva quale fosse il controller alternativo?Spring SimpleFormController in 3.0
risposta
In Spring 3.0 è necessario utilizzare classi semplici annotate da @Controller
. Tale controller può gestire più di una richiesta. Ogni richiesta viene gestita con il proprio metodo. Questi metodi sono annotati da @RequestMapping
.
Una cosa che è necessario ripensare è il fatto che una vecchia scuola SimpleFormController
gestisce molte richieste diverse (almeno: una per ottenere il modulo e un secondo per inviare il modulo). Devi gestirlo ora a mano. Ma credimi è più facile.
Per esempio, questo controller in REST Stile, gestirà due richieste:
- /libro - POST: per creare un libro
- /libro/forma - GET: per ottenere la forma per la creazione
del codice Java:
@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
}
}
applausi. la mappatura annota è tutto nuovo per me mentre stavo seguendo questo libro ho ottenuto http://www.amazon.co.uk/Spring-Action-Craig-Walls/dp/1933988134/ref=sr_1_1?ie=UTF8&qid=1295447914&sr=8 -1 – jonney
domanda veloce. vuol dire che non devo più mappare i miei controller in bean tramite i file xml? – jonney
@jonney: Sì, ci sono nuove annotazioni: @Controller, @Service, @Repository, nonché @Autowire e @Inject. Ma devi abilitare qualcosa che è chiamato scansione dei componenti nel tuo xml. - Dai un'occhiata al blog SpringSource (verso la fine del 2009) e alla sezione sulle nuove funzionalità del riferimento Spring. - Sei anche libero di fare una nuova domanda. – Ralph
Annotated POJOs può funzionare come controller; vedi @Controller
.
grr, sei stato il primo :-) –
Perché mai è stato votato in ribasso, un anno e mezzo dopo che è stato pubblicato? Anche le altre risposte hanno votato? – duffymo
Nella versione 3.0, i controller non devono più ereditare da una classe base. Il modo standard è utilizzare annotated controllers.
Tenete a mente che Wile la roba deprecato funziona ancora a Spring 3, i ragazzi di primavera sono MUC h più aggressivo nella rimozione di API deprecate rispetto alle persone JavaSE, che in realtà le rimuoveranno. – skaffman
Yup 'SimpleFormController' non è più supportato (provato con' 4.0.4.RELEASE'). –