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 2 Java Discussion :

Struts2 Combobox Tag


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Par défaut Struts2 Combobox Tag
    Bonjour,
    je vous remercie tout ceux qui peuvent m'orienter
    j'ai un cimbobox qui me renvoi cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    org.apache.jasper.JasperException: tag 'combobox', field 'list', name 'fruitsNames': You must specify a collection/array/map/enumeration/iterator. Example: people or people.{name} - [unknown location]
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
    	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    voici struts.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
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
     
    <struts>
     
    	<constant name="struts.devMode" value="true" />
    	<package name="default" namespace="/" extends="struts-default">
    	   <action name="comboboxTag" class="com.formation.action.ComboBoxAction">
    		<result>/index.jsp</result>
    	   </action>
    	</package>
    </struts>
    la classe ComboBoxAction.java
    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
     
     
    package com.formation.action;
     
     
    import java.util.*;
     
    import com.opensymphony.xwork2.ActionSupport;
     
     
    public class ComboBoxAction extends ActionSupport
    {
     
    	private static final long serialVersionUID = 1L;
     
    	public static ArrayList<String> fruits;
    	   public String execute()throws Exception
    	   {
    		   fruits = new ArrayList<String>();
    		   fruits.add("Apple");
    		   fruits.add("Mango");
    		   fruits.add("Orange");
    		   fruits.add("Pine Apple");
    		   return SUCCESS;
    	  }
     
    	public static ArrayList<String> getFruits() {
    		return fruits;
    	}
    	public static void setFruits(ArrayList<String> fruits) {
    		ComboBoxAction.fruits = fruits;
    	}
    }
    la page index.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
    18
    19
    20
    21
    22
    23
    24
    25
     
    <%@ taglib prefix="s" uri="/struts-tags"%>
     
    <html>
    <head>
    <title>Combobox (Form Tag) Tag Example!</title>
    <link href="<s:url value="/css/main.css"/>" rel="stylesheet"
    	type="text/css" />
    </head>
    <body>
    	<h1>
    		<span style="background-color: #FFFFcc">Combobox Tag Example!</span>
    	</h1>
    	<s:form action="comboboxTag">
    		<s:combobox 
    		label="Fruits Name" 
    		name="fruitsNames"
    		headerValue="--- Please Select ---" 
    		headerKey="1" 
    		list="#session.fruits" 
    		/>
    		<s:iterator></s:iterator>
    	</s:form>
    </body>
    </html>
    il tiré dtu tuto suivant

    http://www.roseindia.net/struts/stru...bobox_tag.html

    pourtant c'est simple pour je ne comprends pas pk cette erreur

  2. #2
    Membre très actif Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Par défaut
    personne peut me aider !! SVp
    j'ai même essayer de prendre l'exemple struts2-showcase.war fournit par Apache et ça pareil

  3. #3
    Membre très actif Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Par défaut
    Bonjour à tous j'ai trouvé une solution afin d'éviter ce famous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.apache.jasper.JasperException: tag 'combobox', field 'list': You must specify a collection/array/map/enumeration/iterator. Example: people or people.{name} - [unknown location]
    alors il faut que la page qui contient le combobox soit incluse dans un Tiles

    web.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
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_9" version="2.4"
    	xmlns="http://java.sun.com/xml/ns/j2ee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     
    	<display-name>StrutsComboBox</display-name>
    	<listener>
    		<listener-class>
    			org.apache.struts2.tiles.StrutsTilesListener
    		</listener-class>
    	</listener>
    	<context-param>
    		<param-name>tilesDefinitions</param-name>
    		<param-value>/WEB-INF/tiles.xml</param-value>
    	</context-param>
     
    	<filter>
    		<filter-name>struts2</filter-name>
    		<filter-class>
    			org.apache.struts2.dispatcher.FilterDispatcher
    		</filter-class>
    	</filter>
    	<filter-mapping>
    		<filter-name>struts2</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
    	<welcome-file-list>
    		<welcome-file>Menu.jsp</welcome-file>
    	</welcome-file-list>
     
    </web-app>
    struts.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
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    	    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    	    "http://struts.apache.org/dtds/struts-2.0.dtd">
     
    <struts>
    	<constant name="struts.enable.DynamicMethodInvocation"
    		value="false" />
    	<constant name="struts.devMode" value="false" />
    	<constant name="struts.custom.i18n.resources"
    		value="ApplicationResources" />
     
    	<package name="default" extends="struts-default" namespace="/">
    		<result-types>
    			<result-type name="tiles"
    				class="org.apache.struts2.views.tiles.TilesResult" />
    		</result-types>
     
     
    		<action name="welcome">
    			<result name="success" type="tiles">/menugen.tiles</result>
    		</action>
     
     
    		<action name="actionComboBox" class="net.viralpatel.struts2.ExempleList">
    			<result name="success" type="tiles">/tileComboBox.tiles</result>
    			<result type="tiles">/tileComboBox.tiles</result>
    		</action>
     
    	</package>
    </struts>
    tiles.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
     
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <!DOCTYPE tiles-definitions PUBLIC
           "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
           "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
     
    <tiles-definitions>
     
    	<definition name="baseLayout" template="/BaseLayout.jsp">
    		<put-attribute name="menu" value="/Menu.jsp" />
    	</definition>
     
    	<definition name="/tileComboBox.tiles" extends="baseLayout">
    		<put-attribute name="title" value="Struts ComboBox" />
    		<put-attribute name="menu" value="/pageComboBox.jsp" />
    	</definition>
    </tiles-definitions>
    ExempleList.java
    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
     
    package net.viralpatel.struts2;
     
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;
    import java.util.StringTokenizer;
     
    import com.opensymphony.xwork2.ActionSupport;
     
    public class ExempleList extends ActionSupport {
     
    	private static final long serialVersionUID = 1L;
    	private String data = "1,2,3,4,5,9,7,8,9";
    	private Collection<String> nombres;
    	private String numero;
    	public ExempleList() {
     
    	}
    	public String execute() 
    	{
    		nombres = new ArrayList<String>();
    		StringTokenizer st = new StringTokenizer(data, ",");
     
    		while (st.hasMoreTokens()) 
    		{
    			nombres.add(st.nextToken().trim());
    		}
    		return SUCCESS;
    	}
     
     
    	public Collection<String> getNombres() 
    	{
    		return nombres;
    	}
     
    	public void setNombres(Collection<String> nombres) 
    	{
    		this.nombres = nombres;
    	}
    	public String getNumero() 
    	{
    		return this.numero;
    	}
    	public void setNumero(String numero) {
    		this.numero = numero;
    	}
    }
    pageComboBox.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <jsp:directive.page contentType="text/html; charset=UTF-8"/>
    <jsp:directive.taglib prefix="s" uri="/struts-tags"/>
    <jsp:directive.taglib prefix="sx" uri="/struts-dojo-tags"/>
    <html>
    	<body>
    <%--                    <sx:autocompleter size="1" list="nombres" name="numero"/>
    			<s:combobox list="nombres" name="numero">
    			 </s:combobox>
    	</body>
    </html>
    on remarque ici qu'on peut utilisé une liste auto completé si on inclut la lib de dojo

    Menu.jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <jsp:directive.page contentType="text/html; charset=UTF-8"/>
    <jsp:directive.taglib prefix="s" uri="/struts-tags"/>
    <html>
    	<body>
    		<a href="pageComboBox.jsp">Sans Tiles</a>
    		<s:a href="actionComboBox">Avec Tiles</s:a>
    	</body>
    </html>
    BaseLayout.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <jsp:directive.taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"/>
     
    <html>
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    		<title><tiles:insertAttribute name="title" ignore="true"/></title>
    	</head>
    	<body>
    		<tiles:insertAttribute name="menu"/>
    	</body>
    </html>
    voilà !!!
    finit ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.apache.jasper.JasperException: tag 'combobox', field 'list', name 'numero': You must specify a collection/array/map/enumeration/iterator. Example: people or people.{name} - [unknown location]
    tiré depuis l'exemple suivant :
    http://viralpatel.net/blogs/download...HelloWorld.zip

    b@n dev

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/11/2013, 20h41
  2. Réponses: 1
    Dernier message: 14/09/2011, 15h27
  3. [tag Radio] Struts2
    Par belhauss dans le forum Struts 2
    Réponses: 0
    Dernier message: 22/01/2010, 00h38
  4. recuperer un rang precis dans un display tag :struts2
    Par eterneljob dans le forum Struts 2
    Réponses: 3
    Dernier message: 15/10/2008, 12h01
  5. [Tag] Date avec 3 combobox
    Par romainw dans le forum Struts 1
    Réponses: 1
    Dernier message: 16/10/2007, 08h30

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