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 :

Action avec Scope en session


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut Action avec Scope en session
    Bonjour à toutes et à tous,

    Je suis entrain de migrer une appli Struts1 en Struts2.
    A un moment j'ai une action avec un scope en session.

    Comment est ce retranscrit dans Struts2 car je ne trouve pas?

    Le but est bien sur d'avoir un formulaire à plusieurs étapes. Donc que les données ne soient pas perdus entre 2 submit pour une même action.
    Je ne peux pas utiliser de champ caché et repopuler les données dans le bean car j'ai des fichiers en upload à la première page et donc il faut que je me trimballe ces fichiers jusqu'à ma dernière action.

    Edit : Y-a-t-il un moyen de le faire simplement ou suis-je obligé de coder dans l'action en elle même, que je met le bean/action en session. Et de coder un interceptor qui me donnera mon action qui se trouve en session lors d'un submit?

    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Par défaut
    Bonjour, tu as un exemple ici

    http://www.developpez.net/forums/sho...d.php?t=546917

    Sinon en Struts2 tu gardes tes variables déclarées dans ton action, tu n'est plus obligé de passer par des variables de session (moi j'utilise SPRING et je déclare me Actions Struts avec le scope="session")

  3. #3
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Salut dzafer,

    Merci pour ton lien mais ce n'est pas du tout ce que je souhaitais faire.

    PAR CONTRE, pour ce que tu me dis juste en dessous, ca m'interesse, car c'est justement ca que j'essaye de faire : mettre mon action (qui est en faite mon bean) en session pour garder les variables de mon action.

    NB: J'utilise aussi Spring, ou par exemple j'injecte mes Services dans mes actions. Mais je n'arrive pas, ou plutôt je ne sais pas comment déclaré mes beans en session.

  4. #4
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Par défaut
    Avec Spring 2.0x

    Il suffit de rajouter tes Actions également dans ton applicationContext.xml et de
    mettre le scope

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!-- Struts2 actions  -->
    	<bean id="monAction" class="com.test.MonAction" scope="session">
    <property name="monService"><ref local="monService"/></property>
    </bean>

  5. #5
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Aye, c'est pourtant ce que j'ai fait. Mais rien n'est gardé en session....
    (ma version de spring-core 2.5.4).
    De plus, le service que j'injecte au niveau de mon bean est resetter à chaque fois que je fais un submit, plutot bizarre si Spring le considéré comme un bean session, non?

    Mon code qui est le meme que le tien si ce n'est les noms..:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <bean name="histo" class="com.XXX.action.HistoAction" scope="session">
    		<property name="myService">
    			<ref local="service" />
    		</property>
    	</bean>
    Ton fichier applicationContext.xml commence bien par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

  6. #6
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Par défaut
    Voici ma config, en espérant que tu puisses y trouver ton problème
    Malheureusement je ne sais pas si la syntaxe est la même en 2.5

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
    	"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
     
    <beans>
     
    	<!-- JNDI DataSource -->
    	<bean id="dataSource"
    		class="org.springframework.jndi.JndiObjectFactoryBean">
    		<property name="jndiName"
    			value="java:comp/env/jdbc/testdb">
    		</property>
    	</bean>
     
     
    	<!-- Hibernate SessionFactory -->
    	<bean id="sessionFactory"
    		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="dataSource">
    			<ref local="dataSource" />
    		</property>
    		<property name="mappingResources">
    			<list>
    				<value>com/test/model/Country.hbm.xml</value>
    			</list>
    		</property>
    		<property name="hibernateProperties">
    			<props>
    			    <prop key="hibernate.show_sql">true</prop>
    				<prop key="hibernate.dialect">
    					org.hibernate.dialect.MySQLDialect
    				</prop>
    			</props>
    		</property>
    	</bean>
     
    	<!-- Transaction manager for the Hibernate SessionFactory. -->
    	<bean id="transactionManager"
    		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory">
    			<ref local="sessionFactory" />
    		</property>
    	</bean>
     
       <bean id="transactionInterceptor"
    		class="org.springframework.transaction.interceptor.TransactionInterceptor">
    		<property name="transactionManager">
    			<ref bean="transactionManager" />
    		</property>
    		<property name="transactionAttributes">
    			<props>
    				<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
    				<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
    				<prop key="save*">PROPAGATION_REQUIRED</prop>
    				<prop key="update*">PROPAGATION_REQUIRED</prop>
    				<prop key="delete*">PROPAGATION_REQUIRES_NEW</prop>
    				<prop key="*">PROPAGATION_REQUIRED</prop>
    			</props>
    		</property>
    	</bean>
     
        <!-- DAO -->
     
    	<bean id="countryDAO" class="com.test.dao.hibernate.CountryDAOHibernate"> 
    		<property name="sessionFactory"><ref local="sessionFactory"/></property> 
    	</bean>
     
    ...	
        <!-- Services -->
    	<bean id="countryService" class="com.test.business.impl.CountryServiceImpl">
    		<property name="countryDAO"><ref local="countryDAO"/></property>
    	</bean>
     
    ...
     
         <!-- Struts2 actions  -->
    	<bean id="patientAction" class="com.test.action.PatientAction" scope="session">
    	  <property name="countryService"><ref local="countryService"/></property>
        </bean>
     
    ...
     
    </beans>

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

Discussions similaires

  1. probleme avec scope session struts2
    Par franco9 dans le forum Struts 1
    Réponses: 0
    Dernier message: 18/07/2012, 02h02
  2. Réponses: 6
    Dernier message: 28/11/2005, 12h03
  3. Déclencher une action avec un chrono
    Par Oberown dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 14h22
  4. [JTextField] Déclencher une action avec la touche ENTER
    Par tchoukapi dans le forum Composants
    Réponses: 10
    Dernier message: 19/09/2005, 14h37
  5. Réponses: 4
    Dernier message: 27/04/2004, 14h45

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