On Fri, Mar 08, 2002 at 12:55:01AM -0800, Struts Newsgroup wrote:
> What we wanted was exactly the same as you: insert, update, delete,
> different actions with different validations. If I want different
> validations I want different formbeans (formbean for insert, one for
> update and one for delete). The problem is that the html form
> section (<html:form action = "youraction">)can only contain one
> action and so you can only go to one formbean. If this form has
> multiple buttons then what do you do?
We've encountered the same problem, and here's how we chose to solve
it (using only one formbean):
-For each submit button, assign a different property name:
<html:submit property="insertSubmit">
<bean:message key="button.newRecord"/>
</html:submit>
<html:submit property="updateSubmit">
<bean:message key="button.updateRecord"/>
</html:submit>
<html:submit property="deleteSubmit">
<bean:message key="button.deleteRecord"/>
</html:submit>
-Then in your validate(mapping,request) method of the form bean:
public ActionErrors validate(ActionMapping mapping, HttpServletRequest req){
boolean doInsert=(req.getParameter("insertSubmit") != null);
boolean doUpdate=(req.getParameter("updateSubmit") != null);
boolean doDelete=(req.getParameter("deleteSubmit") != null);
// Check for always-required fields here
if(doInsert || doUpdate) {
//Check for some special-case required fields here
}
if(doDelete) {
//Check for different set of required fields here
}
}
-This method has worked really well for us: it's easy to implement,
and easy to understand for new people who join the project.
> The area we haven't checked is the area of using hyperlinks instead of
> submit buttons, so the solution might be there.
This could work if you required your users to have a
javascript-enabled browser, but the method I'm using works with all
forms-enabled browsers... which is most (but not all) of them. :)
--
Jonathan Fuerth - SQL Power Group Inc.
(416)218-5551 (Toronto); 1-866-SQL-POWR (Toll-Free)
Unleash the Power of your Corporate Data - www.sqlpower.ca
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>