The only means i've thought this could be possible would be to iterate through the parameter names enumeration like this..

Enumeration parameterNames = request.getParameterNames();
String parameter = mapping.getParameter();

while(parameterNames.hasMoreElements()) {
        String paramName = parameterNames.nextElement();
        if(paramName.indexOf(parameter) != -1) {
                // find the index using substring
                nestedDispatchMethod([struts gubbins],parameter, index);
        }
}


But given such forms are likely to have a lot of parameter names this would seem a bit heavy going.





On 27 Jun 2004, at 12:42, Mark Lowe wrote:

I've been looking through the struts source with a view to trying to find a way of handling nested dispatch actions.

Basically the problem is passing through an index or key to the getMethodName (MappedDispatchAction) or the getKeyMethodMap (LookupDispatchAction) and running a method based on that.



<html:form action="/foo.do">
<c:forEach var="course" items="${menuForm.courses}" varStatus="firstIndex">
<c:forEach var="nestedLevel" items="${course.dishes}" varStatus="nestedIndex">
<html:text property="${courses[firstIndex.index]. dishes[nestedIndex.index]" />
<html:submit property="method" indexed="true">
..


The situation is that i need to add an item to the the levelOne object. But when submitting there's no way of grabbing the index and thus knowing which of the levelOne objects to add a new rows of nested object to.

So far I've been using the unspecified method and searching the parameter names for a custom button name. So not really dispatching any thing. But If i wanted to go another level i would arrive at the same problem.

So far it looks like adding a nestedDispatchMethod or indexedDispatchMethod which also passes the index through.

Anyone else looked into this? It would seem a common enough problem.

Mark












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



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



Reply via email to