Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Java] Visualizzazione del contenuto dei una textarea in una jsp

    Ciao a tutti,
    devo visualizzare in una pagina jsp il contenuto di una text area con i relativi "a capo".

    Esempio:
    Nella text area inserisco il contenuto in questo modo:

    - Elemento 1: ......
    - Elemento 2: .......

    - Elemento n: .......

    Tale contenuto viene dapprima memorizzato in un database e successivamente richiamato per essere visualizzato in una jsp con la stessa formattazione con cui è stato inserito.

    Ciò che visualizzo è il contenuto formattato in questo modo:

    - Elemento 1: ........... -Elemento 2: ......... Elemento n: ........

    Come si potrebbe risolvere tale problema?
    Grazie

  2. #2
    Quote Originariamente inviata da Andreawave Visualizza il messaggio
    Ciò che visualizzo è il contenuto formattato in questo modo:

    - Elemento 1: ........... -Elemento 2: ......... Elemento n: ........
    Beh, ci possono essere problemi a vari livelli (uno o più). Come viene passato al backend già in origine. Come viene memorizzato su DB. Come viene emesso in output nella pagina JSP.

    Mostra del codice, eventualmente. E comunque, verifica tu, se vuoi che il testo vada a capo devi "emettere" in output dei newline. Quindi o la stringa su DB ha già i newline oppure ..... è da vedere.
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  3. #3
    Ok, questo è il codice HTML relativo alla text area per l'inserimento del contenuto:

    codice:
       <div class="form-group">                    <label class="control-label col-sm-2" for="descrizione">Descrizione</label>
                        <div class="col-sm-10">          
                        <textarea class="form-control" rows="25" id="descrizione" name="descrizione"></textarea>
                        </div>
    Questo invece è il tag che utilizzo per visualizzare il contenuto inserito con la text area, all'interno della pagina jsp:

    codice:
       <h6>Descrizione: <c:out value="${fattura.descrizione}"/></h6>
    Per quanto riguarda la verifica su DB come faccio a vedere se la stringa ha i newline? Eventualmente come faccio ad impostarli?

  4. #4
    Quote Originariamente inviata da Andreawave Visualizza il messaggio
    codice:
       <h6>Descrizione: <c:out value="${fattura.descrizione}"/></h6>
    Scusa ma questo è un <h6> ... cosa c'entra con una textarea?? (nei tag <hX> come tanti altri, i newline/space NON sono significativi!)

    Quote Originariamente inviata da Andreawave Visualizza il messaggio
    Per quanto riguarda la verifica su DB come faccio a vedere se la stringa ha i newline? Eventualmente come faccio ad impostarli?
    Per "vederli" ... li vedi! Sia su DB sia soprattutto in debugging.
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  5. #5
    [QUOTE=andbin;25538312]Scusa ma questo è un <h6> ... cosa c'entra con una textarea?? (nei tag <hX> come tanti altri, i newline/space NON sono significativi!)

    Quindi dovrei mettere
    codice:
    <c:out value="${fattura.descrizione}"/>
    al di fuori del tag <h6>, giusto?

  6. #6
    Quote Originariamente inviata da Andreawave Visualizza il messaggio
    Quindi dovrei mettere
    codice:
    <c:out value="${fattura.descrizione}"/>
    al di fuori del tag <h6>, giusto?
    No, devi "buttare" in output quella descrizione dentro un tag <textarea> (o se non vuoi un campo di testo, in un <pre> che mantiene la formattazione)

    Scusa ma sennò di cosa staremmo parlando?
    Ultima modifica di andbin; 20-03-2019 a 12:59
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  7. #7
    Scusa non ho afferrato...
    Devo togliere il tag textarea? E che cosa utilizzo al suo posto?
    Ho bisogno di utilizzare una text area per inserire la descrizione di una fattura(con tutte le voci ecc.)

  8. #8
    Quote Originariamente inviata da Andreawave Visualizza il messaggio
    Scusa non ho afferrato...
    Devo togliere il tag textarea? E che cosa utilizzo al suo posto?
    Ho bisogno di utilizzare una text area per inserire la descrizione di una fattura(con tutte le voci ecc.)
    Allora chiariamo una volta per tutte.

    Se vuoi ri-visualizzare la descrizione ma che sia di nuovo editabile, allora ovviamente una textarea è ok:

    <textarea ...attributi.ecc...><c:out value="${fattura.descrizione}"/></textarea>

    Se vuoi solo far vedere il testo, che NON sia editabile, ci sono diverse possibilità:
    - ancora una <textarea> ma stavolta "read-only" (vedi attributo proprio readonly)
    - un ambiente "preformatted" (cioè rispetta spazi e newline). C'è <pre> che per default è preformatted ma puoi farlo con qualunque altro tag se gli applichi la property CSS white-space con valore pre (o pre-wrap, vedi documentazione).

    Se lo metti in un ambiente NON preformatted, es. un normale <p> o <div>, gli spazi/newline per default in HTML NON sono significativi, non vengono rispettati.
    Dovresti convertire tu ciascun newline in un <br> per avere l'effetto di "a capo". Ma il problema è che non puoi banalmente fare un replace del newline in <br>. Cioè sì, lo PUOI fare lato Java. Ma il problema è dopo, perché usi <c:out> . Questo per default fa (giustamente) l'escape dei caratteri speciali. Quindi se nella stringa passata al <c:out> ci fosse "aaa<br>bbb", il <c:out> lo fa diventare "aaa&lt;br&gt;bbb" e quindi l'utente legge proprio < b r > a video. Che non va affatto bene, ovviamente.

    Si può fare ma serve un minimo di "attenzione" nel farlo correttamente.
    Ultima modifica di andbin; 20-03-2019 a 14:13
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  9. #9
    Perfetto! Ottima spiegazione! Funziona tutto correttamente!
    Grazie mille!

Tag per questa discussione

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