Please ask these questions on the users list. This list is for the
development of struts itself.

musachy

On Sun, May 3, 2009 at 8:52 PM, Unmesh joshi <unmesh_jo...@hotmail.com> wrote:
>
> Hi,
> I am using struts2 on my current project and find ModelDriven interface very 
> inconvenient. The intent of the interface is documented as, "it helps 
> directly populating domain model". But if the domain model is little more 
> complex than a simple bean, it becomes very inconvinient. e.g.
> If my domain model is as follows
> class Order {   String orderNumber;   UserInformation user;     }
> class UserInformation {   String firstName;   String lastName;   Address 
> address;}
> class Address {   String addressLine1;   String city;   String state;}
> The problem with ModelDriven is that I have to use OGNL expressions like 
> user.address.addressLine1 in my HTML form. While this is not a bigger issue 
> for the simple example as above, it can be awkward for little more complex 
> domain models. What suits better for those domain models is to have a 
> builder, which has setters for all the parameters on the form and has 
> responsibility to build the actual domain model objects. Something like 
> following
> class OrderBuilder {  String orderNumber;  String firstName;  String 
> lastName;  String addressLine1;  String city;  String state;   public Order 
> build() {    ......  }  }
>
> I can offcourse use this builder as Model, fooling struts framework like 
> following
> class MyAction imeplements ModelDriven<OrderBuilder> {  private OrderBuilder 
> builder;   public OrderBuilder getModel() {
>           builder = new OrderBuilder();           return builder;    }
>   public void execute() {         orderBuilder.build(); // Then use order   
> }} But I think this reads very badly. Instead, will it make more sense to 
> have a annotation for "parameter mapping strategy"? Something like
> Instead ofclass MyAction implements ModelDriven<Order>
> have following
> @BeanMappingStrategy(beanName="order")  //expects OGNL in parameter names to 
> map to beanclass MyAction {  Order order;}
> or
> @BuilderMappingStrategy(builderName="oderBuilder") // knows that its dealing 
> with builder, so will call build method.class MyAction {  OrderBuilder 
> orderBuilder;}
> What do you guys think?
> Thanks,Unmesh
> _________________________________________________________________
> Live Search extreme As India feels the heat of poll season, get all the info 
> you need on the MSN News Aggregator
> http://news.in.msn.com/National/indiaelections2009/aggregator/default.aspx



-- 
"Hey you! Would you help me to carry the stone?" Pink Floyd

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
For additional commands, e-mail: dev-h...@struts.apache.org

Reply via email to