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

Struts 1 Java Discussion :

erreur lors de l'utilisation de layout:pager


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut erreur lors de l'utilisation de layout:pager
    Bonsoir,

    J'ai un problème avec l'utilisation du tag <layout:pager>.

    Je souhaite afficher une liste de 6 éléments, et j'ai fixé un pager de maximum 5 lignes.
    Lorsque la page se charge, je reçois l'exception suivante :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception
     
    javax.servlet.ServletException: org.apache.jasper.JasperException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    cause mère
     
    org.apache.jasper.JasperException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:538)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
    	org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
    	org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    cause mère
     
    java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    	java.lang.String.charAt(String.java:686)
    	fr.improve.struts.taglib.layout.skin.Skin.getImageDirectory(Skin.java:269)
    	fr.improve.struts.taglib.layout.renderer.BasicPagerRenderer.doPrintNext(BasicPagerRenderer.java:149)
    	fr.improve.struts.taglib.layout.pager.PagerTag.doPrintNext(PagerTag.java:494)
    	fr.improve.struts.taglib.layout.pager.PagerTag.doPrintTag(PagerTag.java:460)
    	fr.improve.struts.taglib.layout.pager.PagerTag.processEndLayoutEvent(PagerTag.java:157)
    	fr.improve.struts.taglib.layout.event.EndLayoutEvent.send(EndLayoutEvent.java:28)
    	fr.improve.struts.taglib.layout.collection.BaseCollectionTag.doEndLayoutTag(BaseCollectionTag.java:984)
    	fr.improve.struts.taglib.layout.BodyLayoutTagSupport.doEndTag(BodyLayoutTagSupport.java:50)
    	org.apache.jsp.WEB_002dINF.views.hello_jsp._jspx_meth_layout_005fcollection_005f0(hello_jsp.java:732)
    	org.apache.jsp.WEB_002dINF.views.hello_jsp._jspx_meth_layout_005fpager_005f0(hello_jsp.java:673)
    	org.apache.jsp.WEB_002dINF.views.hello_jsp._jspx_meth_logic_005fnotEmpty_005f2(hello_jsp.java:641)
    	org.apache.jsp.WEB_002dINF.views.hello_jsp._jspx_meth_logic_005fpresent_005f1(hello_jsp.java:607)
    	org.apache.jsp.WEB_002dINF.views.hello_jsp._jspService(hello_jsp.java:250)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
    	org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
    	org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    Je n'ai aucun problème si l'option maxPageItems est fixée à une valeur supérieur au nombre d'élément dans ma liste, ou si je n'utilise pas le pager.

    Il y aurait il des éléments que j'ai oublié de configurer pour pouvoir utiliser le pager ?

    voici le code que j'utilise dans ma jsp :
    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
    <logic:present name="helloWorldForm" property="listColis">
                    <logic:notEmpty name="helloWorldForm" property="listColis">
                        <layout:pager maxPageItems="">
                            <layout:collection name="helloWorldForm" property="listColis">
                                <layout:collectionTitle title="colis.icu">
                                    <layout:collectionItem property="icu"/>
                                </layout:collectionTitle>
                                <layout:collectionTitle title="colis.exp">
                                    <layout:collectionItem property="exp"/>
                                </layout:collectionTitle>
                                <layout:collectionTitle title="colis.dest">
                                    <layout:collectionItem property="dest"/>
                                </layout:collectionTitle>
                            </layout:collection>
                        </layout:pager>
                    </logic:notEmpty>
                </logic:present>
    Merci d'avance
    Hadler

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    peux-tu montrer le fichier struts-layout.properties stp ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    Je suppose que tu veux dire le struts-config.xml

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
     
    <struts-config>
     
    	<form-beans>
    	   <form-bean name="helloWorldForm" type="be.hlb.form.HelloWorldForm"/>
    	</form-beans>
     
        <global-forwards>
            <forward name="welcome" path="/home.do"/>
        </global-forwards>
     
    	<action-mappings>
     
            <action path="/connexion" type="be.hlb.action.ConnexionAction">
                <forward name="success" path="/WEB-INF/views/accueilAuthentifie.jsp" />
            </action>
     
            <action path="/deconnexion" type="be.hlb.action.DeconnexionAction">
                <forward name="success" path="/WEB-INF/views/accueil.jsp" />
            </action>
     
    	   <action path="/helloWorld" type="be.hlb.action.HelloWorldAction" name="helloWorldForm">
               <forward name="success" path="/WEB-INF/views/hello.jsp"/>
               <forward name="echec" path="/WEB-INF/views/accueil.jsp"/>
    	   </action>
     
            <!--TODO-->
            <action path="/home" type="be.hlb.action.AccueilAction">
    		    <forward name="echec" path="/WEB-INF/views/accueil.jsp"/>
                <forward name="succes" path="/WEB-INF/views/accueilAuthentifie.jsp"/>
    	    </action>
    	</action-mappings>
     
     
     
    	<message-resources parameter="be.hlb.ApplicationResources"/>    
     
        <plug-in className="fr.improve.struts.taglib.layout.workflow.LayoutPlugin">
            <set-property property="skinResources" value="MyDefaultSkin"/>
        </plug-in>
     
    </struts-config>
    MyDefaultSkin.properties
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    #skin name. Default is the first parameter or the file name (ie Struts-Layout_blue.properties -> blue.css)
    skin =
     
    # web directory in which are located the images (the context root will be added)
    directory.images =
     
    # web directory in which are located the javascrips  (the context root will be added)
    directory.config =
     
    # web directory in which are located the css files. Default is directory.config (the context root will be added)
    directory.css =
     
    # display ot not the null fields in inspect mode
    display.null.fields = true
     
    # implementor of the PanelInterface to use
    panel.class = fr.improve.struts.taglib.layout.util.BasicPanel
     
    # implementor of the PopupInterface to use
    popup.class = fr.improve.struts.taglib.layout.renderer.BasicPopupRenderer
     
    # implementor of the CollectionInterface to use
    collection.class = fr.improve.struts.taglib.layout.util.BasicCollection
    collection.class.datagrid = fr.improve.struts.taglib.layout.util.BasicDatagrid
     
    #implementor of the TabsInterface to use.
    tabs.class = fr.improve.struts.taglib.layout.util.BasicTabs
     
    # implementor of the FieldInterface to use
    field.class = fr.improve.struts.taglib.layout.util.BasicField
     
    # implementor of the TreeviewInterface to use
    treeview.class = fr.improve.struts.taglib.layout.util.BasicTreeview
    # implementator of the IPagerRenderer to use
    pager.class = fr.improve.struts.taglib.layout.renderer.BasicPagerRenderer
     
    # name of the formatter class
    formatter.class = fr.improve.struts.taglib.layout.formatter.DateFormatter
     
    # name of the policy class
    policy.class =
     
    # name of the formutils class
    formutils.class = fr.improve.struts.taglib.layout.util.BasicFormUtils
     
    # name of the image in the image dir to use as the sort pictogram
    layout.sort = Lists/SortList_normal.jpg
    layout.sort.reverse = Lists/SortList_normal.jpg
    layout.sort.forward = Lists/SortList_normal.jpg
    layout.sort.label = Sort
     
    #name of the image and the label for the pager.
    layout.pager.previous.label = &lt;&lt;
    layout.pager.previous.img =Lists/Listfooter_previous.gif
    layout.pager.next.label = &gt;&gt;
    layout.pager.next.img =Lists/Listfooter_next.gif
    layout.pager.maxPageItems = 10
    layout.pager.maxLinks = 10
    layout.pager.displayDirect = false
     
    #name of the image to use as a (un)checked box pictogram and related labels
    layout.checkbox.checked =
    layout.checkbox.checked.label = checked
    layout.checkbox.unchecked =
    layout.checkbox.unchecked.label = unchecked
     
    #name of the image to use as a calendar pictogram
    layout.calendar = calendar.gif
     
    #if there are both a form and links in a page, follows the link if there are unsaved changes in the form
    follow.change = true
     
    #display the error message next to the error field.
    error.display = true
    #format the error message using Struts properties (errors.header, errors.footer, errors.prefix, errors.suffix)
    error.format = false
    #set the focus on the first error field.
    error.focus = false
     
    #require a valid transaction token to sort collection (this forbids the use of back and refresh buttons)
    sort.token.required = true
     
    #keep error messages after a sort
    sort.error.keep = true
     
    # use specific rules to sort Strings.
    #sort.rules.class = fr.improve.struts.taglib.layout.sort.ParsianSortRules
    #sort.rules.class = fr.improve.struts.taglib.layout.sort.FrenchSortRules
     
    #include a token in each hyperlink.
    link.token.include = false
     
    #number of menus to load at the same time
    tree.numberOfMenusLoaded=50
     
    #nested compatbility
    nested.compatibility = false
     
    # sort action
    sortutil.action = sort.do
     
    # treeview action
    treeview.action = treeview.do
     
    # el character.
    el.character = $

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    non, c'était bien le struts-layout.properties, enfin, pour toi c'est MyDefaultSkin.properties.
    Il semble que tu ais un problème de paramétrage de skin.
    Quelle version de struts-layout utilises-tu ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    J'utilise la version 1.2 de struts-layout.

    Suite à ta remarque sur le struts-layout.properties,je me suis rendu compte que j'étais parti d'un fichier déjà existant que j'ai pris d'une ancienne application en fait.

    Il y en a un standard dans le jar de struts-layout que j'ai pris et mis dans mon projet. Résulat : plus aucun problème

    Merci beaucoup de ton aide.

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

Discussions similaires

  1. Erreur lors de l'utilisation de TableSorter.java
    Par Frac10 dans le forum AWT/Swing
    Réponses: 47
    Dernier message: 20/11/2006, 12h06
  2. Erreur lors de l'utilisation de session_start();
    Par nane1474 dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2006, 12h06
  3. Erreur lors de l' utilisation des objets ADO
    Par aityahia dans le forum Bases de données
    Réponses: 10
    Dernier message: 24/03/2006, 13h46
  4. Eviter les erreurs lors de l'utilisation des compo Tsocket
    Par Coussati dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/02/2006, 19h14
  5. Erreur lors de l'utilisation de strlwr ?!
    Par MonsieurAk dans le forum C++
    Réponses: 4
    Dernier message: 05/12/2005, 10h22

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