I've run into a situation that I would like to get others opinions on. The problem is with handling a form. Here is the scenario: I have a form called form.jsp, this form needs data from the database so it has an associated FormAction.java class. The struts.xml file looks like this:
<action name="myForm" class="FormAction"> <result>/form.jsp</result> </action> The form then posts the data to another action called postForm and the struts.xml looks like this: <action name="postForm" class="PostFormAction"> <result>...</result> </action> Now for the issues. The first issue is field validation. I can't just add an input result that points to /form.jsp because the form needs the data out of FormAction. If I redirect to myForm I loose the field validation and the same goes for chaining (I know I can hack out the errors from the stack but that is ugly). Using the session to save error info on is also ugly. My preference is to use just one action class and have two methods. I would use execute() to get the data to view the form and postData() for posting the data. This way if postData found a field errors it could call execute and then return an input status. This solution still has problems in terms of interceptor validators. The validator needs to check for required fields only when the postData() method is called and not when execute is called and if there is an error when calling postData() it needs to call execute before returning an input status. I would like to make a validator that is smart enough to know when to validate fields and when not to based on the method being called but I cannot find a way to get what method on the action is being called. Is there a best practices on how to handle form data in an elegant manner? Is there a way to know what method is being called? So many questions and so few answers :( thanks Brian