Sorry, the link I meant to include was this:
http://timboudreau.com/builds/job/mastfrog-parent/lastSuccessfulBuild/artifact/acteur-modules/acteur-parent/acteur/target/apidocs/com/mastfrog/acteur/preconditions/InjectParametersAsInterface.html

-Tim

On Sunday, June 29, 2014 5:18:38 AM UTC-4, Tim Boudreau wrote:
>
> I think @Named is not a good fit for that, for precisely the reasons you 
> specify.  Guice has to know the names of things that will be injected ahead 
> of time.  There are ways I can think of that you could torture Guice into 
> doing what you're after (if you really want I can describe them), but 
> there's no getting around telling Guice the names of every parameter you're 
> ever going to want to consume;  then you could do a custom scope with 
> Providers for all of them.
>
> I did something that achieves the same end in my Acteur web 
> framework,which sits on top of Guice+Netty:
>
> http://timboudreau.com/builds/job/mastfrog-parent/lastSuccessfulBuild/artifact/acteur-modules/acteur-parent/acteur/target/apidocs/index.html?com/mastfrog/acteur/HttpEvent.html
>
> Basically you create an interface with one method for each parameter that 
> might be present;  the framework will implement it as a dynamic proxy and 
> make it available for injection.  That gets you something naturally 
> null-tolerant and with at least minimal validation that number parameters 
> are actually numbers and so forth.
>
> You might try something like that - it's both a more OOP-like approach, 
> and avoids weirdness like having to make sure there are no name clashes 
> between URL parameters and anything else you're using @Named for.
>
> -Tim
>
> On Friday, June 27, 2014 4:02:11 PM UTC-4, Edgar Espina wrote:
>>
>> Hi,
>>
>>  I'm using Guice to inject HTTP Request parameters (I'm not using 
>> guice-servlet) and I will like to do things like:
>>
>> public class Command {
>>>   public Command(@Named("name") String name) {
>>>   }
>>> }
>>
>>
>>  Here "name" is an HTTP parameter and I'm able to bind it when present.
>>
>>  The problem (of course) is when that parameter isn't present or sent and 
>> want to have a default value for it.
>>
>>  I know isn't possible to inject something without a binding and it's OK. 
>> So what I'm asking here is feedback on how to deal with this? and/or an 
>> alternate solution?
>>
>> Thanks,
>>
>> edgar
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/c78a25df-3635-4dc6-bdea-8a16288a9135%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to