This week's book giveaway is in the Reactive Progamming forum.
We're giving away four copies of Reactive Streams in Java: Concurrency with RxJava, Reactor, and Akka Streams and have Adam Davis on-line!
See this thread for details.
Win a copy of Reactive Streams in Java: Concurrency with RxJava, Reactor, and Akka Streams this week in the Reactive Progamming forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Junilu Lacar
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • Tim Cooke
  • Devaka Cooray
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Ganesh Patekar

@Controller annotation query

 
Ranch Hand
Posts: 1376
Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi

I am new to Spring 3.0 and was just running one of the sample code of Spring MVC 3.0.

In sample code , i am using @Controller annotations.As we know that Controller can be Abstract Controller, SimpleFormController, MultiFormController etc.
When i placed @Controller above my POJO class definition (used for MVC operation), how Spring Annotation Handlers is deducing that this POJO class is to be treated as SimpleFormController class? not as MultiFormController class?



 
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Do you mean MultiActionController?
 
Abhay Agarwal
Ranch Hand
Posts: 1376
Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes
 
Ranch Hand
Posts: 89
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
NOTE: I changed this first part because I misread the original question

The way you've annotated your controller, it's configured like a SimpleFormController (i.e. one path with separate GET & POST handler methods). The thing that controller annotations do is blur the lines between the old ideas of form controller and multiaction controller. Basically, you can do either or both in the same controller now. Anything you could do with the old SimpleFormController, you can pretty much do with annotations.

If you watch the startup and you've got full logging turned on, you'll see that the annotation handler deduces a lot from the annotations you've got. That's the convention over configuaration showing up. On the other hand, a multi-action controller would look more like the following (using your example) and takes advantage of more explicit path definitions. Notice how it's possible to blend both SimpleFormController behavior with MultiActionController behavior.


 
David Newton
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Are there any reasons to use one over the other? I also thought they looked really close to each other at a high level once you could add the annotations, but I don't know enough to understand any real differences, either.
 
Mark Secrist
Ranch Hand
Posts: 89
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

David Newton wrote:Are there any reasons to use one over the other? I also thought they looked really close to each other at a high level once you could add the annotations, but I don't know enough to understand any real differences, either.


Are you asking annoteded vs. extension of SimpleFormController & MulitActionController?
 
David Newton
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Mmm, more or less. It just seems like with the annotations there's no real need to think about the distinction--but want to know if that's actually true, or if there's other reasons someone might choose one over the other.
 
Mark Secrist
Ranch Hand
Posts: 89
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes, it's true that with annotations the distinction becomes blurred. In the past, you had to think about it more explicitly because the behavior was built into the class you extended and you could only extend from one. With annotations, you could make one controller class handle both form processing and other miscellaneous calls that might be considered multi-action. In fact, it's possible to have one controller handle muliple forms if you set it up right - but probably not a good idea.
 
I just had the craziest dream. This tiny ad was in it.
Java file APIs (DOC, XLS, PDF, and many more)
https://products.aspose.com/total/java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!