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

Spring Java Discussion :

[Bean] Liste dynamique [Framework]


Sujet :

Spring Java

  1. #1
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut [Bean] Liste dynamique
    Bonjour,

    Est il possible de demander a spring de charger une liste de fichier de manière dynamique ?

    Exemple pour un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <bean id="mySessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    	<property name="mappingRessources">
    		<list>
    			<value>packageAA/monFichier.xml</value>
    		</list>
    	</property>
    </bean>
    Est ce que l'on peut paramétrer spring afin qu'il charge l'ensemble des fichiers du package packageAA sans devoir saisir un dur chaque nom de fichier ?


    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,
    Citation Envoyé par Katachana Voir le message
    Est ce que l'on peut paramétrer spring afin qu'il charge l'ensemble des fichiers du package packageAA sans devoir saisir un dur chaque nom de fichier ?
    Une solution possible serait de créer un factoryBean qui te fait ça, par exemple :

    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
     
    import java.io.File;
    import java.io.FileFilter;
    import java.io.FilenameFilter;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
     
    import org.springframework.beans.factory.FactoryBean;
    import org.springframework.beans.factory.InitializingBean;
     
    public class FilesListingFactoryBean implements FactoryBean, InitializingBean {
    	private String parentDirectory;
    	private List<File> children;
     
    	@Override
    	public Object getObject() throws Exception {
    		return children;
    	}
     
    	@Override
    	public Class getObjectType() {
    		return List.class;
    	}
     
    	@Override
    	public boolean isSingleton() {
    		return false;
    	}
     
    	public void setParentDirectory(String parentDirectory) {
    		this.parentDirectory = parentDirectory;
    	}
     
    	@Override
    	public void afterPropertiesSet() throws Exception {
    		if (parentDirectory == null) {
    			throw new IllegalArgumentException("parentDirectory must be set");
    		}
    		File file = new File(parentDirectory);
    		if (!file.exists() || !file.isDirectory()) {
    			throw new IllegalArgumentException(
    					"parentDirectory must point to a valid directory");
    		}
     
    		children = Arrays.asList(file.listFiles(new FileFilter() {
     
    			@Override
    			public boolean accept(File f) {
    				return f.isFile() && f.canRead();
    			}
    		}));
    	}
    }
    De le décalrer et de l'injecter comme valeur de ton type liste.

  3. #3
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Merci pour la piste

  4. #4
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    J'ai un peu de mal à l'injecter comme valeur de ton type liste


    Est ce que tu pourrais être un peu plus explicite ?

    Merci d'avance !

    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
     
    	<bean id="filesListingFactoryBean" class="com.............FilesListingFactoryBean">
    		<property name="parentDirectory"> 
    			<value>src/main/resources/output/</value>
    		</property>
    	</bean>
     
    	<bean id="xxxxxxx" class="com.xxxxxxxx" init-method="readXXXXXX">
    		<property name="xxxx" ref="xxxxxxx"></property>
    		<property name="xxxxxx">
    			<list>
    				<value>filesListingFactoryBean</value>
    			</list>
    		</property>
    	</bean>

  5. #5
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <bean id="filesListingFactoryBean" class="com.............FilesListingFactoryBean">
    		<property name="parentDirectory"> 
    			<value>src/main/resources/output/</value>
    		</property>
    	</bean>
     
    	<bean id="xxxxxxx" class="com.xxxxxxxx" init-method="readXXXXXX">
    		<property name="xxxx" ref="xxxxxxx"></property>
    		<property name="xxxxxx" ref="filesListingFactoryBean" />
    	</bean>

    Ou si tu utilises le (tellement plus sympa et court) namespace p :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <bean id="filesListingFactoryBean" class="com.............FilesListingFactoryBean" p:parentDirectory="src/main/resources/output/" />
     
    	<bean id="xxxxxxx" class="com.xxxxxxxx" init-method="readXXXXXX" p:xxxxxx-ref="filesListingFactoryBean" />

  6. #6
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. [Javascript] Question pas difficile sur des listes dynamique...
    Par mulbek dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/04/2006, 09h55
  2. afficher les contenu d'une liste dynamiquement
    Par mzt.insat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/04/2006, 18h02
  3. [PHP-JS] Liste dynamique
    Par SuperBn dans le forum Langage
    Réponses: 4
    Dernier message: 09/02/2006, 17h09
  4. Réponses: 1
    Dernier message: 16/01/2006, 17h36
  5. Rafraichissement liste dynamique
    Par Petitjean_85 dans le forum ASP
    Réponses: 5
    Dernier message: 14/06/2004, 10h21

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