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 :

[Struts 1.2.9] Message "No bean specified" sur forward avec formbean


Sujet :

Struts 1 Java

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Par défaut [Struts 1.2.9] Message "No bean specified" sur forward avec formbean
    Bonjour à tous,

    Je bosse depuis peu avec Struts 1.2.9 et j'ai un petit problème, j'explique...

    J'ai un premier formulaire où je définis 2 propriétés qui fonctionnent jusqu'à l'ajout des données en BDD. Mon problème est que lorsque je fais un forward vers une action contenant une autre action accompagnée d'un autre formbean, j'ai l'erreur suivante :
    No bean specified struts ...
    Erreur classique mais je n'ai pas encore rencontré mon cas...

    Pourtant lorsque je lance l'autre formulaire en utilisant le lien directe je n'ai aucun problème. C'est bizarre non?

    Quelqu'un saurait-il me dire si Struts autorise le forward d'un formulaire vers un autre ou alors il faut à chaque fois lancer une page contenant un formulaire, à chaque fois par accès direct...?

    Merci de votre aide

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Une action peut faire un forward vers une autre Action qui pointe sur deux formbean différents.
    Peux-tu montrer le mapping de ces deux Actions ?

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Par défaut
    Salut c_nvy,

    J'ai trouvé la solution à mon problème qui était que je faisait un cast d'un formbean alors qu'il était d'un autre type
    Le problème est que je ne voyais pas mon erreur car aucune exception dans la console apparaissait.
    Je trouve quand même ce truc bizarre.

    En tout cas j'ai perdu deux jour entier à bosser dessus pfff...

    Merci pour ton aide

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Par défaut
    Nooon le problème n'es pas résolu il vient de revenir et pourtant je fais un forward vers des pages vide pour m'assurer que ce n'es pas un problème de casting c'est pas vraiii Au secours!

    c_nvy voici les formbeans et les mappings;

    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
     
     
    			<form-bean
    				name="newProfileCreationForm"
    				type="form.NewProfileCreationForm"/>
     
    			<form-bean
    				name="NewNCHomeInformationForm"
    				type="form.NewNCHomeInformationForm"/>
     
    			<action path="/internal/newProfileCreation" forward=".newProfileCreation"/>
    			<action
    				path="/internal/newProfileCreationValidation"
    				name="newProfileCreationForm"
    				type="action.NewProfileCreationAction"
    				input=".newProfileCreation"
    				scope="request">
    					<forward name="forwardHomepage" path="/internal/homepage.do"/>
    					<forward name="forwardNewNCHomeInformation" path="/internal/newNCHomeInformation.do"/>
    			</action>
     
    			<action
    				path="/internal/newNCHomeInformation"
    				type="action.NewNCHomeInformationAction"
    				input=".newNCHomeInformation"
    				name="NewNCHomeInformationForm"
    				validate="false"
    				unknown="false"
    				scope="request">
    					<forward name="forwardHomepage" path="/internal/homepage.do"/>
    					<forward name="forwardNewNCHomeInformation" path="/internal/newNCHomeInformationValidation.do"/>
    					<forward name="forwardAddAddress" path="/internal/address.do"/>
    					<forward name="forwardEmployeeProfile" path="/internal/employeeProfile.do"/>
    			</action>
     
    			<action
    				path="/internal/newNCHomeInformationValidation"
    				type="action.NewNCHomeInformationAction"
    				input=".newNCHomeInformation"
    				name="NewNCHomeInformationForm"
    				scope="request">
    					<forward name="forwardHomepage" path="/internal/homepage.do"/>
    				<forward name="forwardNewNCHomeInformation" path="/internal/newNCHomeInformationValidation.do"/>
    					<forward name="forwardAddAddress" path="/internal/address.do"/>
    					<forward name="forwardEmployeeProfile" path="/internal/employeeProfile.do"/>
    			</action>
    qu'en penses-tu...?

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Par défaut
    Si cela peut aider à me faire avancer dans ma situation voici à quoi ressemble mon formbean vu de l'interieur...

    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
     
    public class NewNCHomeInformationForm extends FormBase {
     
    	EmployeeVO employeeVO = new EmployeeVO();
     
    	ContractVO contractVO = new ContractVO();
     
     
    	@Override
    	public void reset(ActionMapping mapping, HttpServletRequest request) {
     
    	}
     
    	@Override
    	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    		ActionErrors errors = new ActionErrors();
    		print("-------------------------------------------->03 - NewNCHomeInformationForm.validate...");
     
    		//Classical error check.
    		EmployeeForm employeeForm = new EmployeeForm(this.employeeVO);
    		errors = employeeForm.validateEmployeeAttributes(mapping, request);
     
    		if (errors.size() == 0){
    			this.employeeVO.setContractVO(this.contractVO);
    			print(this.employeeVO.toString());
    			ActionBase.setCurrentPersonProfile(request, this.employeeVO);
    		}
     
    		return errors;
    	}
     
     
    	public EmployeeVO getEmployeeVO() {
    		return employeeVO;
    	}
     
    	public void setEmployeeVO(EmployeeVO employeeVO) {
    		this.employeeVO = employeeVO;
    	}
     
    	public String getArrivalDate() {
    		return getStringFromDate(getEmployeeVO().getArrivalDate());
    	}
     
    	public void setArrivalDate(String arrivalDate) {
    		getEmployeeVO().setArrivalDate(getDateFromString(arrivalDate));
    	}
     
    	public String getBirthDate() {
    		return getStringFromDate(getEmployeeVO().getBirthDate());
    	}
     
    	public void setBirthDate(String birthDate) {
    		getEmployeeVO().setBirthDate(getDateFromString(birthDate));
    	}
     
    	public ContractVO getContractVO() {
    		return contractVO;
    	}
     
    	public void setContractVO(ContractVO contractVO) {
    		this.contractVO = contractVO;
    	}
     
    }
    Lorsque j'accède directement au map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /internal/newNCHomeInformation.do
    Celà fonctionne sans probleme mais lorsque j'y accède depuis le map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /internal/newProfileCreationValidation.do
    Paff Tandis que lorsque je redirige vers une autre page je n'ai aucun problème effarant non!?

    Mais plus encore lorsque je commente tout les setters et les getter, tout fonctionne à peu de bug près car je n'ai plus les moyen d'initialiser... :/

    Est-ce que je devrai déclarer dans la zone <form-beans> que le formulaire contiendrai éventuellement des objets composé...?

    Merci à tous pour votre aide les amis...

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Je penche pour un problème de scope de form-bean.
    A partir du moment où tu as plusieurs Actions liées à un même form-bean, il faut mettre le scope du form-bean à session dans le mapping de toutes les Actions liées à ce form-bean.

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Par défaut
    Merci de me répondre, c'est vraiment sympa .

    Heuu le problème est que j'utilise deux formbean différents comme tu peux le voir dans mon mapping qui sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    			<form-bean
    				name="newProfileCreationForm"
    				type="form.NewProfileCreationForm"/>
     
    			<form-bean
    				name="NewNCHomeInformationForm"
    				type="form.NewNCHomeInformationForm"/>
    le premier étant un formulaire qui doit renvoyer ses propres donnée vers un autre pour des soucis de validation, le client ne peut pas passer à la page suivante tant qu'il n'a pas bien remplit le formulaire.

    le vrai problème que j'ai, c'est que ça fonctionnait bien jusqu'à ce que ça plante, je pense qu'il y a une boulette dans mon code.

    Je vais essayer de repartir de zéro avec des formulaire basique et essayer de comprendre ou ça plante...

    Encore merci

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Par défaut
    Bonjour à tous,

    Si cela peut faire avancer la situation ou aider certains, je pense avoir trouvé un élément de réponse ou la réponse à mon problème.

    Mon problème vient du fait que j'ai deux objets composés dans mon ActionForm ainsi que leur getter/setter respectif, lorsque je n'ai qu'un seul objet composé mon formulaire fonctionne bien et s'affiche sans problème, cela m'intrigue bien .

    Est-ce que dans la spécification struts il est spécifier qu'un actionform ne peut avoir qu'un seul objet composé?

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Par défaut
    Plus encore apparemment le problème dûe à m'initialisation d'une variable utilisée dans un formulaire situé dans une page précédente!?

    Vraiment étrange je ne comprends pas...

Discussions similaires

  1. [STRUTS] [Debutant] Cannot find message resources...
    Par grizzz dans le forum Struts 1
    Réponses: 14
    Dernier message: 05/05/2011, 16h08
  2. [Struts] Comment afficher des messages de confirmation
    Par vallica dans le forum Struts 1
    Réponses: 8
    Dernier message: 28/04/2006, 14h25
  3. [Struts / EL] Problème d'accesibilité d'un bean
    Par CynO dans le forum Struts 1
    Réponses: 4
    Dernier message: 21/01/2006, 19h05
  4. Réponses: 9
    Dernier message: 24/03/2004, 12h15

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