Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
it should be possible to use @Page directly at page-beans.
rules:
- if @Page is used at a class which also hosts @Named or @ManagedBean, there shouldn't be a veto
- instead of nested classes btw. interfaces one part of the package info should be used
- in the root package there has to be a marker class with the annotation @InlineViewConfigRoot(optionally an explicit basePath should be possible)
- the page-bean class is automatically used as view-controller
known restrictions:
- only use it for simple apps - the concept itself doesn't support a page-bean for multiple pages, however, if needed it's possible to use it side by side with the normal view-config approach
example 1:
package my.package.pages;
@InlineViewConfigRoot
public final class Pages
{
}
package my.package.pages.registration;
//...
@Named
@RequestScoped
@Page
public class RegistrationStep1 implements ViewConfig
{
public Class<? extends ViewConfig> confirm()
}
//will be interpreted as /pages/registration/registrationStep1.xhtml
example 2:
package my.package.pages;
@InlineViewConfigRoot(basePath = "/pages/", pageBeanPostfix = "Page")
public final class Pages
{
}
package my.package.pages.registration;
//...
@Named
@RequestScoped
@Page
public class RegistrationStep2Page implements ViewConfig
{
//...
}
//will be interpreted as /pages/registrationStep2.xhtml
example 3:
package my.package.pages;
@InlineViewConfigRoot(basePath = "/*", pageBeanPostfix = "Page")
public final class Pages
{
}
package my.package.pages.registration;
//...
@Named
@RequestScoped
@Page
public class RegistrationStep3Page implements ViewConfig
{
//...
}
//will be interpreted as /registration/registrationStep3.xhtml
example 4:
package my.package.pages;
@InlineViewConfigRoot(basePath = "/views/*")
public final class Pages
{
}
package my.package.pages.registration;
//...
@Named
@RequestScoped
@Page
public class RegistrationStep4 implements ViewConfig
{
//...
}
//will be interpreted as /views/registration/registrationStep4.xhtml