Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [J2EE - Struts] ricavare valore di html:link

    Ciao a tutti,

    nella mia applicazione c'è un menu di <html:link>. Ogni voce del menu, ovviamente, deve reindirizzare ad un'altra pagina tramite appropriate Action di struts.
    Il problema è questo:
    io vorrei settare per ogni link la stessa Action (per capirci una cosa tipo menuAction) che in base al valore del link, ovvero in base a quale voce del menu l'utente ha cliccato, esegue operazioni specifiche. Ecco vorrei sapere quale è la via migliore tra impostare un id ad ogni link (ma vorrei fare una cosa più generica possibile, e questo non mi sembra esattamente performante in quanto le voci del menu vengono generate dinamicamente ) oppure richiamare uno javascript (ma vorrei evitarli) che memorizzi in request il valore del link che poi nella Action mi ricaverò? O altrimenti qualsiasi altro consiglio è ben accetto (ovviamente!).


    Grazie cari.
    S-RDZN

    J2EE programmer

  2. #2
    Non pensavo di mettervi così in difficoltà. Scusate, ritiro la domanda....
    S-RDZN

    J2EE programmer

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    6
    L'action punta alla stessa pagina?

    Se puoi postare un piccolo esempio di codice magari ci diamo uno sguardo insieme. Considera che io sono nuovo di struts

  4. #4
    Allora, in pratica, c'è una pagina jsp con un menù laterale le cui voci sono <html:link>. Ovviamente ogni voce del menu punta ad una pagina differente, ma questo controllo deve essere rimandato alla Action. Qui sorge il problema: la Action deve essere in grado di percepire da quale voce del menu sia stata richiamata e quindi fare il "redirect" alla specifica pagina.

    Una cosa del genere:

    home.jsp
    codice:
    .....
    ....
    ...
    <html:link action="/menuAction">voce_menu_1</html:link>
    <html:link action="/menuAction">voce_menu_2</html:link>
    <html:link action="/menuAction">voce_menu_3</html:link>
    .......
    ......
    .....
    MenuAction.java
    codice:
    ....
    ...
    ..
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		
    		//qui in base a quale voce è stata cliccata devo andare a settare il forward
                    
    		
    		return mapping.findForward(....);
    	}
    S-RDZN

    J2EE programmer

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    6
    Penso che l'id sia la soluzione migliore, almeno per il mio stato delle competenze attuali.

    Ad esempio, non so se ti può tornare utile, io avevo un iteratore di record, ai quali dovevo fornire un link per un action di modifica. Gli ho passato come <saram> l'url, e alla classe cui è mappata l'action corrispondente ho fatto implementare l'interfaccia ParameterAware, che prevede una Map<String, String[]> di parametri dai quali puoi recuperare le variabili in request senza usare JavaScript.

    http://struts.apache.org/2.x/docs/ho...an-action.html

    Comunque ti consiglio il tutorial di roseindia.net su Struts, è abbastanza completo, magari puoi trovare qualche altro spunto lì.

  6. #6
    Il discorso della ParameterAware è interessante e farebbe anche al caso mio, però è stata inserita a partire da struts 2, ed io purtroppo utilizzo ancora la versione 1.3.

    A me servirebbe una cosa simile a quello che fa la LookUpDispatchAction con i submit, però con i link.
    S-RDZN

    J2EE programmer

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    6
    Purtroppo non saprei come aiutarti allora, son partito direttamente a lavorare con la 2.x, che proprio ora mi sta facendo penare per textfield e property...

  8. #8
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    io ho fatto che metti un parametro nell link
    per esempio
    codice:
    <html:link action="/menuAction?a=voce_menu_1">voce_menu_1</html:link>
    <html:link action="/menuAction?a=voce_menu_2">voce_menu_2</html:link>
    <html:link action="/menuAction?a=voce_menu_3">voce_menu_3</html:link>
    ora, menuAction avrà una action vera e propria. Quella estrare il parametro e poi ci fai quello che vuoi.

  9. #9
    Originariamente inviato da bako
    io ho fatto che metti un parametro nell link
    per esempio
    codice:
    <html:link action="/menuAction?a=voce_menu_1">voce_menu_1</html:link>
    <html:link action="/menuAction?a=voce_menu_2">voce_menu_2</html:link>
    <html:link action="/menuAction?a=voce_menu_3">voce_menu_3</html:link>
    ora, menuAction avrà una action vera e propria. Quella estrare il parametro e poi ci fai quello che vuoi.
    Il problema è che le voci del menù vengono caricate dinamicamente dal file di properties tramite il <bean:message>, ma se lo metto come parametro nella queryString non lo risolve e vede il tag come stringa: in pratica quando lo vado a ricavare dalla request, il parametro ha valore "<bean:message ....>".
    S-RDZN

    J2EE programmer

  10. #10
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    Originariamente inviato da simoneRDZN
    Il problema è che le voci del menù vengono caricate dinamicamente dal file di properties tramite il <bean:message>, ma se lo metto come parametro nella queryString non lo risolve e vede il tag come stringa: in pratica quando lo vado a ricavare dalla request, il parametro ha valore "<bean:message ....>".
    nn ho capito motlo..
    ti stampa una stringa così:

    codice:
    <html:link action="/menuAction?<bean:messagge..>">voce_menu_3</html:link>
    ??
    se si devi fare una cosa del tipo

    codice:
    ${nomedelbean.proprietà}

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.