Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Moderatore di Macintosh e software L'avatar di olivs
    Registrato dal
    Jan 2001
    Messaggi
    8,906

    [JSP] Taglib e variabili

    Volevo sapere come fare a usare una variabile settata usando le taglib con un banale for o switch. Esempio:
    codice:
    <c:set var="tabella" value="valore>" />
    <%
    int numero_settimana;
    
    for (numero_settimana=1; numero_settimana<=52; numero_settimana++)
    {
    out.println(QUI VORREI METTERE LA VARIABILE tabella + numero_settimana);
    
    }
    %>
    E' possibile farlo, mi va bene pure viceversa, basta sapere come si fa

  2. #2
    è possibile fare tutto senza dover mettere codice java nelle pagine, vedi la doc. delle taglib jstl, i tag c:forEach o forTokens in particolare.


    codice:
    <c:set var="tabella" value="valore>" />
    <c:set var="settimane" value="1,2,3,4,5,6.....52" />
    
    <c:forTokens items="${settimane}" delims="," begin="1" var="settimana">
        <c:out value="${tabella + settimana}" />
    </c:forTokens>

    non so se funziona ma devi fare una cosa del genere

  3. #3
    Moderatore di Macintosh e software L'avatar di olivs
    Registrato dal
    Jan 2001
    Messaggi
    8,906
    Ti ringrazio ma quel comando non è esattamente un for...
    Il classico for e switch del caso non ci sono nelle c taglib?
    Supponendo di voler fare un for che va dal valore di una variabile a un'altra con questo forToken la vedo duretta

  4. #4
    per concezione, i tag di iterazione servono, appunto, per iterare qualcosa, che sia una collection o un'array.
    Il forTokens è solo un tag comodo per iterare eventuali risultati di array di controlli, ma un'iterazione secca da 1 a 52 non è prevista dalle jstl.

    puoi usare direttamente il codice java scritto da te, o farti una taglib tua se vuoi mantenere il codice più pulito.

    comunque, usando anche codice java potresti fare:

    codice:
    <c:set var="tabella" value="valore>" />
    
    for(int settimana=1; settimana < 52; settimana++)
    {
        <c:out value="${tabella + settimana}" />
    }
    questo dovrebbe funzionare

  5. #5
    Moderatore di Macintosh e software L'avatar di olivs
    Registrato dal
    Jan 2001
    Messaggi
    8,906
    No purtroppo non va quell'idea l'avevo provata ieri e da sempre:
    An error occurred while evaluating custom action attribute "value" with value "${tabella + settimana}": An exception occured trying to convert String "ciccio" to type "java.lang.Long" (null)


  6. #6
    Originariamente inviato da olivs
    No purtroppo non va quell'idea l'avevo provata ieri e da sempre:
    An error occurred while evaluating custom action attribute "value" with value "${tabella + settimana}": An exception occured trying to convert String "ciccio" to type "java.lang.Long" (null)

    sono due tipi di dati differenti, perchè tabella è una stringa e settimana un long..

    ma devi concatenare o aggiungere?

    se devi aggiungere nonha senso inserire ciccio come valore, se devi concatenare ad output, puoi annche fare semplicemente due cut

    <cut value="${tabella}" /><cut value="${settimana}" />

  7. #7
    Moderatore di Macintosh e software L'avatar di olivs
    Registrato dal
    Jan 2001
    Messaggi
    8,906
    codice:
    <c:set var="tabella" value="ciccio" />
    <%
    for(int settimana=1; settimana < 52; settimana++)
    { %>
        <c:out value="${tabella}" /> 
        <c:out value="${settimana}" /> 
    <% }
    %>
    cos' settimana non viene outputtata esce 52 volte ciccio, comunque mi interessano entrambe aggiungere e concatenare

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 © 2024 vBulletin Solutions, Inc. All rights reserved.