On 19/05/05 21:29 Laurie Harper wrote:
my chosen option would be to use your view objects as form objects, where you modify the view object by adding string-typed getters and setters for every property.


I'm not really keen to 'pollute' the view objects with String-type derived properties just for the HTML presentation; the view objects are how any client (web app, web service, Swing GUI, etc) would interact with the application. This also implies having String-to-model conversion code scattered through the view objects...

OK, valid point, but you then go on to say that you have a method on your view object to provide all the string-typed properties in a map to your form bean or get them from your form bean.

I think what you are doing is mixing and matching the struts-paradigm (front servlet pattern) with what JSF wants to do. Which is actually a good idea because (a) I thinks struts needs something more and (b) I don't like the JSF point-and-click .NET wanna-be approach.

By the way this isn't my only reply - I wanted to split the subject - I am posting again with questions about your design.

From a design perspective, there's something niggling me about your view objects. The view whether it is a GUI or HTTP is basically a framework or layer that should provide an API for stuff like string-to-type conversion. So I agree you should not pollute the view objects with such code. It's just semantics I guess - they're not really 'view objects' - they're DTOs. I guess you put the data together from various data object in the back end, right?

What I am aiming for is a DynaActionForm that I can configure in xml but including type info. There would also be a validation mechanism - do you want a validation error if the type cast fails? etc.

<form-bean name="libraryForm"
    type="org.apache.struts.validator.AdamsDynaValidatorForm">
    <form-property name="sectionId"
        type="java.lang.String"
        cast="java.lang.Integer"
        validate="true"
        />
</form-bean>

You could populate it with BeanUtils or with your toMap() method.

I guess this is only one step removed from what you've got anyway. It's just encapsulated within the formbean and view layer framework.


Adam

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to