Open
Description
Issue by mvcbot
Friday Aug 07, 2015 at 10:04 GMT
Originally opened as mvc-spec/mvc-spec#63
Original issue MVC_SPEC-51 created by beryozkin_sergey:
@Controller
@View("book.jsp")
public Book getBook() {}
{code}
I.e, if it is non-void, non-Viewable response with View then the response is treated as the content to be processed by the view engine.
The simplest and safe way to bind Book to HTTP request attribute is to assume a convention that a class name (Book.class.getName()) is used as a key.
Additionally (or alternatively) an extra optional attribute can be added to @View:
{code:java}
@Controller
@View(value="book.jsp", name="book")
public Book getBook() {}
{code}
Furthermore the above style can also support:
@Controller
@View("book.jsp")
@Produces({"application/xml", "application/json", "text/html"})
public Book getBook() {}
given that it is very typical in JAX-RS to have a single method with multiple Produces values.
I think this style is very important to support because it is more natural to write than having to use a @nAmed sync such as Greetings in the spec example or dealing with Models directly, in both cases the application directly having to be aware of the MVC semantics.
IMHO it is not difficult to support it at a spec level. It is also another good example why a strict CDI binding requirement may need to be relaxed and limited to a subset of styles.
Metadata
Metadata
Assignees
Labels
No labels