struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gawain Hammond" <gawain.hamm...@192.com>
Subject RE: [S2] Does struts set null values for pojo fields?
Date Thu, 21 Aug 2008 10:36:47 GMT
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.
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message