struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dionis Argiri <dio...@gmail.com>
Subject Re: Action inheritance and value automatic injection failure
Date Tue, 29 May 2012 15:42:47 GMT
Hi!

Yes, I'm using spring. But I use only spring's DI mechanism, to use it with
Hibernate. I use it with struts-spring plugin. And also I use convention
plugin. I use autowired dependencies by type. And they're injected
perfectly well.

2012/5/29 J. Garcia <jogaco.en@gmail.com>

> I guess you're using Spring.
>
> If you use Spring injection via an xml file, you must use inheritance:
>
>    <bean id="baseAction" class="com....BaseAction" scope="prototype">
>    </bean>
>
>    <bean id="itemDetails" class="com....ItemDetails" scope="prototype"
> depends-on="baseAction">
>        <property name="itemId" ref="itemId"/>
>    </bean>
>
>    <bean id="saveItem" class="com....SaveItem" scope="prototype"
> depends-on="baseAction,itemDetails">
>    </bean>
>
> Cheers,
> J.
>
> On Tue, May 29, 2012 at 2:31 PM, Dionis Argiri <diostm@gmail.com> wrote:
>
> > Hi!
> >
> > I'm using struts 2.3.3. And I have marked following problem. When I have
> > some hierarchy of inheritance, then value is not automatically injected
> in
> > inherited action. Example:
> >
> > abstract class BaseAction extends ActionSupport {
> > ...
> > }
> >
> > class NewItem extends BaseAction {
> > ...
> > }
> >
> > class ItemDetails extends BaseAction {
> >   protected BigInteger itemId;
> >  public BigInteger getItemId(){return itemId;}
> >  public void setItemId(BigInteger itemId){this.itemId=itemId;}
> > ...
> > }
> >
> > class SaveItem extends ItemDetails {
> > ...
> > }
> >
> > I submit form to action "SaveItem" and (surprise-surprise) value is not
> > injected into itemId. And I see OGNL exception, that there's no method
> > SaveItem.setItemId(BigInteger).
> > Only working work-around is to explicitly create setter in SaveItem
> action.
> > But I hate this approach, because it forces me to create stupid code.
> >
> > The same stuff is even if I try to make field public. Anyway, it's not
> seen
> > by framework and value is not injected.
> >
> > Is it a known issue? Or probably I'm just using struts2 actions somehow
> > strange?
> >
> > BR,
> > Dionis
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message