IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

InputTextarea retour à la ligne


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Par défaut InputTextarea retour à la ligne
    Bonjour à tous,

    je possède une page avec un p:inputTextarea dans lequel l'utilisateur peut écrire une news. Le problème est que si j'y écrit plusieurs paragraphes avec des retour à la ligne donc, ils ne sont pas pris en compte. En fait ils sont bien enregistré dans la base de donnée mais ils ne sont pas affiché. Tout mon texte est regroupé dans un paragraphe.

    Ceci est assez logique je pense comme mon affichage se fait de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <p>
         #{news.corpsNews}
    </p>
    Néanmoins avant l'enregistrement dans la base j'ai bien tenté de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    replaceAll("\n", "<br/>")
    // ou
    replaceAll("\n", "</p><p>")
    Mais l'affichage reste le même. Et quand je regarde le code html généré grace à l'outil d'IE (F12), je vois que les balises rajoutés (<br/> et <p>) sont prise en compte comme du texte ; je les vois au milieu de mon texte...

    Dites moi si vous avez une idée pour résoudre mon problème. Merci à vous

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Citation Envoyé par Lolosan Voir le message
    je possède une page avec un p:inputTextarea dans lequel l'utilisateur peut écrire une news. Le problème est que si j'y écrit plusieurs paragraphes avec des retour à la ligne donc, ils ne sont pas pris en compte. En fait ils sont bien enregistré dans la base de donnée mais ils ne sont pas affiché. Tout mon texte est regroupé dans un paragraphe.
    Etrange comme comportement ! j'ai essayé le composant et chez moi il prend bien les "\n" !
    Quel version de primefaces tu utilises ?

    Citation Envoyé par Lolosan Voir le message
    Ceci est assez logique je pense comme mon affichage se fait de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <p>
         #{news.corpsNews}
    </p>
    Et la c'est encore plus étrange .... j'ai regardé le code source de la page généré et moi j'ai un "textarea" !

    Peux tu montrer le code de la JSF ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Par défaut
    Alors le code pour modifier mes news :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <ui:repeat var="news" value="#{pageAdministrationNewsBean.liste}">
    	<h1>
    		Titre
    	</h1>
    	<br></br>
    	<p:inputText value="#{news.titreNews}" style="width:760px;"/>
    	<br></br>
    	<h1>
    		Corps
    	</h1>
    	<br></br>
    	<p:inputTextarea value="#{news.corpsNews}" rows="15" cols="150"/>
    	<br></br>
    	<h:panelGrid columns="2" style="margin-top:10px">  
                       <p:commandButton value="Modifier" update=":form:messages" actionListener="#{pageAdministrationNewsBean.modifNews(news)}" icon="ui-icon-disk" />    
                 </h:panelGrid>
    </ui:repeat>
    J'utilie primefaces 4.0. Le composant prend bien les retour à la ligne, c'est à l'affichage sur mon autre page de mon string que j'arrive pas à les afficher (page d'accueil). Comme je n'affiche pas mes news dans un inpuTextarea sur la page d'accueil mais dans un paragraphe, sa couince là.

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Ok, je comprend mieux maintenant
    En fait il faut joué sur le style soit dans la css soit directement sur le composant.
    Il faut que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p style="white-space: pre;">
         #{news.corpsNews}
    </p>
    Le problème est que tu va avoir une tabulation sur la première ligne vue que c'est un paragraphe
    je te conseil donc de passer par un composant, sauf si se retrait te conviens bien sur
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{news.corpsNews}" style="white-space: pre;" />
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Par défaut
    J'ai testé les deux solutions, et effectivement la seconde me conviens mieux.

    A noter que je n'utilise pas "white-space: pre;", mais "white-space: pre-line;". La premiere me met mes paragraphes sur une seule ligne (j'en perd donc la fin). Si le pre ne fonctionne pas sa doit venir de mon navigateur (IE 8), même si j'ai lu qu'il fonctionne pour les versions à partir de IE 8...

    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Caractère de retour à la ligne.
    Par Pari dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 18/03/2009, 09h59
  2. [FileWriter] retour à la ligne
    Par LoLoSS dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 23/06/2004, 10h52
  3. [JTextArea] Fichier et retour à la ligne
    Par eraim dans le forum Composants
    Réponses: 4
    Dernier message: 23/06/2004, 08h21
  4. [MFC] Retour à la ligne dans un CEdit
    Par Kant dans le forum MFC
    Réponses: 7
    Dernier message: 18/02/2004, 08h58
  5. Conserver les retours à la ligne
    Par arwen dans le forum ASP
    Réponses: 2
    Dernier message: 04/12/2003, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo