Re: Newbie: Setters appear to not being called...
"Eelco Hillenius" <[email protected]>
| Newsgroups | gmane.comp.web.maverick.general |
|---|---|
| Message-ID | <006901c336a4$6f0d39a0$01a8a8c0@Eelco> |
Your right, I had some strange behaviour in the past when working with the base types (I thought), but looking at the BeanUtils code, I see that I was too quick to blame the base types. Should work fine indeed. And... as a hint to miss Scott: stuff like mapping <select> to String[] works fine as well! Eelco ----- Original Message ----- From: "jim moore" <[email protected]> To: <[email protected]> Sent: Thursday, June 19, 2003 3:43 PM Subject: Re: [Mav-user] Newbie: Setters appear to not being called... > also, > > mav (through bean utils) will do the datatype conversion for you, so instead > of : > > public void setTerm(string term) { > this.term = stringToDouble(value); > } > > you can just have: > > public void setTerm(double term) { > this.term = term; > } > > --jim > > ----- Original Message ----- > From: "Eelco Hillenius" <[email protected]> > To: <[email protected]> > Sent: Thursday, June 19, 2003 8:26 AM > Subject: Re: [Mav-user] Newbie: Setters appear to not being called... > > > > Maverick uses Commons BeanUtils to populate its beans (like the > controllers > > in your case). BeanUtils does not populate any fields that do not have a > > getter as well. The solution is to include the getters (like getTerm() > > etc.). > > > > Eelco > > > > ----- Original Message ----- > > From: "Kimberley Scott" <[email protected]> > > To: <[email protected]> > > Cc: "Kimberley Scott" <[email protected]> > > Sent: Thursday, June 19, 2003 2:09 PM > > Subject: [Mav-user] Newbie: Setters appear to not being called... > > > > > > Hiya, > > > > Just started using maverick. Luv it. Gotta slight problem and feeling I'm > > going mad. I think I've got it wrong about how you extend controllers. I > > have this app I'm building, and have a problem where the setters for form > > variables are not being called. I just know I'm doing something wrong, but > > can't see where, and I've re-read the manual supplied (thankyou guys) and > > studied the 'pig' with no luck. I've got cut-down code below and would > love > > any help people can give me: > > > > classes: > > public class ControllerErrorable extends ThrowawayBean2 > > { > > ... hasErrors, getErrors etc... > > } > > > > public class Menu extends ControllerErrorable > > { > > ...setters and getters for some menu stuff... > > protected String perform() > > throws Exception > > { > > super.perform(); > > ...other stuff > > } > > } > > > > public class Calculator extends Menu > > { > > ...setters and getters for special calculations... > > ...and also: > > public void setTerm(String value) > > { > > System.out.println("Hey! How come I'm not being called?"); > > this.term = stringToDouble(value); > > } > > protected String perform() > > throws Exception > > { > > super.perform(); > > ...other stuff > > } > > } > > > > maverick.xml: > > <command name="calculator"> > > <controller class="com.dcg.ctl.Calculator" /> > > <view name="success" path="tools/calculator.jsp"> > > <transform path="outerPageWrapper.jsp"/> > > </view> > > </command> > > > > tools/calculator.jsp: > > <form blah blah> > > ...other input... > > <input > > type="text" > > name="term" > > size="4" > > maxlength="4" > > value="<c:out value="${model.longTerm}"/>" /> > > ...submit... > > </form> > > > > I must be doing something seriously wrong here, because when I call > > 'calculator.m', the tools/calculator.jsp runs ok. I fill in a value for > the > > input field 'term', and click submit. The 'Menu' class appears to have > it's > > setters and it's perform() called fine. What doesn't seem to be happening > is > > the call to setTerm(String value) within the Calculator controller. > > > > I iterated over the Request and get this: > > > > (iterating over the request parameters) > > 12:48:23,579 INFO [STDOUT] [product] == [bnpl] > > 12:48:23,579 INFO [STDOUT] [period] == [0] > > 12:48:23,579 INFO [STDOUT] [amount] == [0] > > 12:48:23,579 INFO [STDOUT] [action] == [obq] > > 12:48:23,579 INFO [STDOUT] [deposit] == [] > > 12:48:23,589 INFO [STDOUT] [term] == [36] <<=== > > 12:48:23,589 INFO [STDOUT] [apr] == [] > > > > (then called getAction() and getTerm() deliberately within perform() > within > > the Calculator class) > > 12:48:23,579 INFO [STDOUT] action==[obq] > > 12:48:23,579 INFO [STDOUT] term==[0.0] <<== > > > > So 'term' is being sent through. I'm stumped and feeling a tad dim. Can > > anyone help? > > > > Ms Kimberley Scott > > Senior Software Engineer > > DCG Media Ltd > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by: INetU > > Attention Web Developers & Consultants: Become An INetU Hosting Partner. > > Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! > > INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php > > [INVALID FOOTER] > > > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by: INetU > > Attention Web Developers & Consultants: Become An INetU Hosting Partner. > > Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! > > INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php > > [INVALID FOOTER] > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: INetU > Attention Web Developers & Consultants: Become An INetU Hosting Partner. > Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! > INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php > [INVALID FOOTER] > > ------------------------------------------------------- This SF.Net email is sponsored by: INetU Attention Web Developers & Consultants: Become An INetU Hosting Partner. Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php [INVALID FOOTER]