Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    5

    [JSP] Chiarimento sintassi

    Salve a tutti,
    non riesco a capire come risolvere un problema di assegnamento di valore ad una variabile.

    Gestisco l'output di una query al Db in questo modo, ricavando un numero di codice che diventerà il nome del file di un'immagine da cancellare dal server.

    <c:choose>
    <c:when test="${rs.rowCount == 0}">
    </c:when>

    <ctherwise>
    E' necessario eliminare dal web i seguenti file immagine:


    <c:forEach var="row" items="${rs.rows}">

    ${row.CODICE}

    String codice=new string(${row.CODICE})

    <%
    String str1 = "c:\\test\\";
    String str2 = str1.concat(codice);
    String str3 = str2.concat(".jpg");
    %>
    File f = new java.io.File(str3);
    f.delete();

    </c:forEach>
    </ctherwise>
    </c:choose>


    Vorrei sapere dove sbaglio ad assegnare alla variabile codice il valore contenuto in ${row.CODICE} dopo la query.

    L'errore mi viene segnalato con l'istruzione concat.

    Grazie!

    Ale

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: [JSP] Chiarimento sintassi

    Originariamente inviato da alesax
    Salve a tutti,
    non riesco a capire come risolvere un problema di assegnamento di valore ad una variabile.

    Gestisco l'output di una query al Db in questo modo, ricavando un numero di codice che diventerà il nome del file di un'immagine da cancellare dal server.

    <c:choose>
    <c:when test="${rs.rowCount == 0}">
    </c:when>

    <ctherwise>
    E' necessario eliminare dal web i seguenti file immagine:


    <c:forEach var="row" items="${rs.rows}">

    ${row.CODICE}

    String codice=new string(${row.CODICE}) // String codice=new String(${row.CODICE})

    <%
    String str1 = "c:\\test\\";
    String str2 = str1.concat(codice);
    String str3 = str2.concat(".jpg");
    %>
    File f = new java.io.File(str3);
    f.delete();

    </c:forEach>
    </ctherwise>
    </c:choose>


    Vorrei sapere dove sbaglio ad assegnare alla variabile codice il valore contenuto in ${row.CODICE} dopo la query.

    L'errore mi viene segnalato con l'istruzione concat.

    Grazie!

    Ale
    Non sono avvezzo al JSP, ma credo che l'istruzione in grassetto vada modificata con quella che ho messo nel commento.

    Se così non fosse, prova anche a postare l'errore che ti viene sollevato.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Tra le altre cose la riga messa in grassetto da Lele si trova al di fuori dei tag <% %> quindi la variabile codice non viene creata... e la stringa viene vista come semplice testo in HTML
    Al mio segnale... scatenate l'inferno!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    5
    L'errore non riguarda string o String ma questo tipo di assegnamento che non è consentito:

    String codice=new string(${row.CODICE});



    L'errore indicato è il seguente:

    Generated servlet error:
    Syntax error on token "$", AssignmentOperator expected after this token


    Grazie!

    Ale

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    L'errore riguarda sicuramente anche String, a meno che tu non ti sia scritto una tua classe che si chiama string ed estende String.
    Inoltre come ti ha fatto notare R@ve, il codice java va scritto nelle sezioni racchiuse da <% %> come anche la parte di File e unlink().
    Poi quando costruisci una nuova stringa, il letterale va tra doppi apici.
    In sostanza
    codice:
    <%
    String stringa = new String("Sono una stringa");
    %>
    Naturalmente dentro i pezzi di scriplet (cioe' quello che sta tra <% e %>) non puoi usare il linguaggio EL (cioe' le esprssioni della forma ${...}). Quindi:
    Soluzione 1) Ti scrivi la tua taglibrary con il tuo tag personalizzato in java che si occupa della rimozione dei file.
    Soluzione 2) Salvi la stringa da qualche parte (requestad esempio) con <c:set/> e la recuperi dentro lo scriplet con request.getAttribute().

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ripeto: io non sono affatto pratico di JSP, quindi io mi limito alle conoscenze di Java come linguaggio di programmazione.

    Originariamente inviato da simo7784
    L'errore riguarda sicuramente anche String, a meno che tu non ti sia scritto una tua classe che si chiama string ed estende String.
    Impossibile: String non può essere estesa essendo final. Se si è creato una classe che si chiama string è una cosa diversa e non assegnabile ad un oggetto String.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.