jsr372-experts@javaserverfaces-spec-public.java.net

[jsr372-experts] Re: Tag to declare and import constants in EL scope

From: Michael Müller <michael.mueller_at_mueller-bruehl.de>
Date: Fri, 24 Jun 2016 22:39:47 +0200

+1

And it seems your constants include enums, right?

Herzliche Grüße - Best Regards,

Michael Müller
Brühl, Germany
blog.mueller-bruehl.de <http://blog.mueller-bruehl.de/>
it-rezension.de <http://it-rezension.de/>
@muellermi


Read my books
"Web Development with Java and JSF": https://leanpub.com/jsf
"Java Lambdas und (parallel) Streams" Deutsche Ausgabe:
https://leanpub.com/lambdas-de
"Java Lambdas and (parallel) Streams" English edition:
https://leanpub.com/lambdas

On 23.06.2016 18:54, Josh Juneau wrote:
> +1
>
> Josh Juneau
> juneau001_at_gmail.com <mailto:juneau001_at_gmail.com>
> http://jj-blogger.blogspot.com
> https://www.apress.com/index.php/author/author/view/id/1866
>
>
> On Tue, Jun 21, 2016 at 8:00 AM, Bauke Scholtz <balusc_at_gmail.com
> <mailto:balusc_at_gmail.com>> wrote:
>
> +1 for it being enforced into <f:metadata>
>
> Cheers, B
>
> On Tue, Jun 21, 2016 at 2:59 PM, Leonardo Uribe
> <leonardo.uribe_at_irian.at <mailto:leonardo.uribe_at_irian.at>> wrote:
>
> Hi
>
> I see, so it is better if it is set as part of faces-config.
>
> Really there is a precedent of a similar tag. In tomahawk
> there are t:aliasBean and t:aliasBeansScope, which are tags
> designed to create temporal names for bean that are only valid
> for child components.
>
> This case is just similar, but for constants.
>
> Other option I can imagine is make it in the same way
> f:viewParam in f:metadata works.
>
> <f:metadata>
> <f:importConstants type="com.example.Gender" />
> </f:metadata>
>
> Then f:importConstants add the definition (which is in fact
> metadata) to UIViewRoot. Since everything inside f:metadata is
> read before the view is actually populated, things will work
> fine (but note f:importConstants is enforced to be added
> inside f:metadata, which has sense).
>
> regards,
>
> Leonardo Uribe
>
>
> 2016-06-20 20:33 GMT+02:00 Bauke Scholtz <balusc_at_gmail.com
> <mailto:balusc_at_gmail.com>>:
>
> I don't think using an annotation is a good idea. Usually
> models reside in business/service (EJB) layer and you
> don't want to have JSF dependencies over there.
>
> Cheers, B
>
> On Mon, Jun 20, 2016 at 3:36 PM, arjan tijms
> <arjan.tijms_at_gmail.com <mailto:arjan.tijms_at_gmail.com>> wrote:
>
> On Mon, Jun 20, 2016 at 3:24 PM, Bauke Scholtz
> <balusc_at_gmail.com <mailto:balusc_at_gmail.com>> wrote:
>
> A faces-config.xml based configuration is a
> reasonable idea. Perhaps even better.
>
>
> And/or the upcoming @FacesConfig ;)
>
> Kind regards,
> Arjan Tijms
>
>
>
> Cheers, B
>
>
> On Mon, Jun 20, 2016 at 3:14 PM, Leonardo Uribe
> <leonardo.uribe_at_irian.at
> <mailto:leonardo.uribe_at_irian.at>> wrote:
>
> Hi
>
> Just as a comment, f:importConstants reminds
> me f:loadBundle, which was deprecated and
> replaced by a solution that loads the bundle
> from the faces-config.xml files.
>
> The problem about f:importConstants is how to
> set up the context where these constants are
> available. For example
>
> <f:importConstants type="com.example.Gender" />
>
> <h:selectOneMenu value="#{person.gender}">
> <f:selectItems value="#{Gender}" />
>
> <f:ajax ...../>
> </h:selectOneMenu>
>
>
> if the ajax is only for the component,
> f:importConstants can be ignored and the code
> will break.
>
> so, the "challenge" is to find a way to define
> the EL context properly.
>
> In MyFaces there are some EL contexts:
>
> - page
> - template
> - view
> - global
>
> Sometimes you want a definition to pass
> through the template, sometimes through the
> view or sometimes just have a global
> definition for all your views.
>
> regards,
>
> Leonardo Uribe
>
>
> 2016-06-20 14:49 GMT+02:00 Bauke Scholtz
> <balusc_at_gmail.com <mailto:balusc_at_gmail.com>>:
>
> Hi,
>
> See
> https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1424
>
> This is a commonly requested feature from
> the community. Several libraries have it
> implemented such as OmniFaces and
> PrimeFaces Extensions. It would be nice to
> offer a standard JSF solution such as
> <f:importConstants>. It's relatively
> trivial to implement.
>
> If there are no objections, I will take it
> on me.
>
> Cheers, B
>
>
>
>
>
>
>
>
>