struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephan Schröder" <simon.v...@gmx.de>
Subject Re: RE: [S2] Does struts set null values for pojo fields?
Date Thu, 21 Aug 2008 11:26:21 GMT
> This is pretty much what I was looking to do, except that I was hoping
> struts2 could automatically remove an object if *all* of it's properties were
> null, not just one. Would your answer be the same given this minor
> difference?

This is actually not a question whether struts2 can do but whether OGNL can do it. OGNL is
the expression language that struts 2 uses to navigate the object network.
-Maybe it works if you write your own OGNL PropertyAccessor (http://www.opensymphony.com/ognl/html/DeveloperGuide/propertyAccessors.html).
-I read that struts 2.1 will make the Expression Language plugable. Maybe different language
works your way or is more easily extendable.

But booth these solutions are nontrivial. Maybe there is a better way hidden in the OGNL Documentaion:

Language Guide: http://www.opensymphony.com/ognl/html/LanguageGuide/index.html
Developer Guide: http://www.opensymphony.com/ognl/html/DeveloperGuide/index.html

/Stephan


-------- Original-Nachricht --------
> Datum: Thu, 21 Aug 2008 11:36:47 +0100
> Von: "Gawain Hammond" <gawain.hammond@192.com>
> An: "Struts Users Mailing List" <user@struts.apache.org>
> Betreff: RE: [S2] Does struts set null values for pojo fields?

> Thanks very much for your reply.
> 
> The problem with this type of work around is that it completely messes up
> my fiendish master plan. If it wasn't for those pesky objects with null
> values! :-P
> 
> You see, I've probably been a bit too clever for my own good, and for the
> first time I've created a single action, a single service, and single dao
> to persist objects submitted from multiple struts forms. I'm currently
> persisting about 20 domain objects this way, and this is the last issue I need
> to solve to get it all working as desired.
> 
> This issue is a pretty common occurrence in my domain model, so I'd have
> to write code to check for null values in many places for every domain
> object. I've been thinking this problem would be best solved either in the
> struts/view layer, or maybe the persistence layer. I'm spreading myself a bit
> thin trying to work it out at both ends at the same time :-)
> 
> If you don't mind, I have one last question: You said:
> 
> "I think you cann't expect Struts 2 to automatically remove an object just
> because one of it's properties is set to null."
> 
> This is pretty much what I was looking to do, except that I was hoping
> struts2 could automatically remove an object if *all* of it's properties were
> null, not just one. Would your answer be the same given this minor
> difference?
> 
> 
> 
> -----Original Message-----
> From: "Stephan Schröder" [mailto:simon.void@gmx.de] 
> Sent: 21 August 2008 09:10
> To: Struts Users Mailing List
> Subject: Re: [S2] Does struts set null values for pojo fields?
> 
> I think you cann't expect Struts 2 to automatically remove an object just
> because one of it's properties is set to null. Ok, in your case it's the
> id-property but struts 2 (or better OGNL) doesn't know that.
> So i don't think this is worth a feature request.
> But here is the workaround i'd use:
> use the prepare-Interceptor after params and set group to null if the ID
> is null in the prepare method. That way the execute method stays a simple
> "persist( user );return SUCCESS;".
> 
> /Stephan
> 
> > <s:select label="Group" headerKey=""
> > headerValue="-- None --"
> > name="user.group.id"
> > value="%{user.group.id}"
> > list="%{#groupAction.list}"
> > listKey="id" listValue="name"
> > />
> > 
> > 
> > Does anyone know if this can be done? Can I configure struts to set
> > user.group as null rather than create an empty Group object if no
> > id/value has been specified in the drop down select box?
> > 
> > Is this something that is working as desired, and I'm the one who needs
> > to change? Or does struts maybe needs a new feature request in jira?
> -- 
> Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten 
> Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> ----------------------------------------------------------
> This transmission is strictly confidential, possibly legally privileged,
> and intended solely for the 
> addressee.  Any views or opinions expressed within it are those of the
> author and do not necessarily 
> represent those of 192.com, i-CD Publishing (UK) Ltd or any of it's
> subsidiary companies.  If you 
> are not the intended recipient then you must not disclose, copy or take
> any action in reliance of this 
> transmission. If you have received this transmission in error, please
> notify the sender as soon as 
> possible.  No employee or agent is authorised to conclude any binding
> agreement on behalf of 
> i-CD Publishing (UK) Ltd with another party by email without express
> written confirmation by an 
> authorised employee of the Company. http://www.192.com (Tel: 08000 192
> 192).  i-CD Publishing (UK) Ltd 
> is incorporated in England and Wales, company number 3148549, VAT No. GB
> 673128728.

-- 
Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten 
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message