PDA

View Full Version : [STRUTS] Problemi con la LookupDispatchAction


TellaspallaBob
30-09-2009, 16:55
Salve a tutti, ho alcuni problemi con una piccola form che in alcuni casi non comunica in modo corretto con la mia Action.
Allora questa è la mia jsp


<html:form action="/miaActionPath.do">
<table>
<tr>
<td>
<label><bean:message key="label.filter"/></label>
<html:text property="fieldFilter" maxlength="14"/>
</td>
<td>
<html:submit property="method">
<bean:message key="label.button.filter"/>
</html:submit>
</td>

<td>
<label><bean:message key="label.filtered.data"/></label>
<html:select property="dataFilteredID">
<html:option value="-1">.........</html:option>
<html:optionsCollection name="<%=MiaListaInSessione%>" value="id" label="desc"/>
</html:select>
</td>
<td>
<html:submit property="method">
<bean:message key="label.button.detail"/>
</html:submit>
</td>
<td>
<html:submit property="method">
<bean:message key="label.button.reset"/>
</html:submit>
</td>
</tr>
</table>
</html:form>


Ecco i problemi:

Se nel campo di test "fieldFilter" scrivo qualcosa e poi premo invio, ottengo un'eccezione che mi dice che il parametro "method" non esiste. Questo mi sembra anche logico visto che il tag "parameter" lo uso per passare il valore inserito alla mia ActionForm, ma non vedo come ovviare a questo. La cosa strana, e potete provare, se duplicate il blocco del campo "fieldFilter" e riprovate a fare la stessa cosa, questo problema non avviene.
vorrei evitare di usare un bottone per andare nel dettagli dell'item selezionato, sfruttare quindi il tag "onchange" della select, ma non so come fare a far scaturire il metodo post.... Se uso uno javascript tipo:"location.href='<%=request.getContextPath()%>/miaActionPath.do?method=doChangeitem" funziona ma ovviamente non essendo stato fatto il submit il selezionato non viene passato alla ActionForm


La versione di Struts che sto utilizzando e' la 1.2.x
Avete dei suggerimenti per ovviare al primo problema e come risolvere il secondo quesito?

Ringrazio in anticipo tutti

ally
01-10-2009, 11:34
Salve a tutti, ho alcuni problemi con una piccola form che in alcuni casi non comunica in modo corretto con la mia Action.
Allora questa è la mia jsp

...

Ecco i problemi:

Se nel campo di test "fieldFilter" scrivo qualcosa e poi premo invio, ottengo un'eccezione che mi dice che il parametro "method" non esiste. Questo mi sembra anche logico visto che il tag "parameter" lo uso per passare il valore inserito alla mia ActionForm, ma non vedo come ovviare a questo. La cosa strana, e potete provare, se duplicate il blocco del campo "fieldFilter" e riprovate a fare la stessa cosa, questo problema non avviene.
vorrei evitare di usare un bottone per andare nel dettagli dell'item selezionato, sfruttare quindi il tag "onchange" della select, ma non so come fare a far scaturire il metodo post.... Se uso uno javascript tipo:"location.href='<%=request.getContextPath()%>/miaActionPath.do?method=doChangeitem" funziona ma ovviamente non essendo stato fatto il submit il selezionato non viene passato alla ActionForm


La versione di Struts che sto utilizzando e' la 1.2.x
Avete dei suggerimenti per ovviare al primo problema e come risolvere il secondo quesito?

Ringrazio in anticipo tutti

...mh...per la seconda non puoi provare con :


onchange="metodoJavaScript(document.tuoForm); return false;"



<script language="Javascript">
function metodoJavaScript(form) {

//eventuali controlli sul form...

form.submit();
}
</script>

TellaspallaBob
01-10-2009, 11:45
Ok ci provo.... purtroppo in javascript sono un pò alle prime armi!!!
In tanto grazie mille.

TellaspallaBob
01-10-2009, 15:48
Grazie mille il tuo suggerimento poi mi ha dato poi l'idea di andare sul sito della w3school a guardarmi il dom....


function changeItem()
{
var filterForm=document.getElementById('myForm');
filterForm.action = '<%=request.getContextPath()%>/myAction.do?method=doModify';
filterForm.submit();
}


Solo una domanda: perché sullo "onchange" dopo la chiamata al metodo metti un "return false"??

ally
02-10-2009, 07:27
...per evitare che che ci sia un submit del form non voluto...

...ciao Andrea...

TellaspallaBob
02-10-2009, 09:04
Ok grazie mille di tutto!!!