Je suis le tutoriel netbean, mais sans succès

Fermé
Richard - 4 juin 2008 à 08:41
 thread - 22 déc. 2008 à 15:46
Bonjour,

je ne comprend pas ce qui se passe quand je suis ce que dit le tutoriel de Netbean. Quel serait le problème???

Le titre du tutoriel c'est :" Developping a Visual Web JSF Application " et voici l'adresse de la pge où se trouve le tutoriel.
http://www.netbeans.org/kb/60/web/helloweb.html

Il s'agit de créer une application web capable de lire un nom à partir d'un text field componant -- cliquer sur un bouton --et afficher le message "Hello... + le nom saisie"

En suivant le tutoriel,

1. J'ai ouvert un nouveau projet (HelloWeb)
2. J'ai placé les composants woodstock (button, text field, static text, etc.) sur la page
3. j'ai changé quelques propriéts tels que le id, for, text, etc., en les appelant HelloButton, HelloText, etc.
4. J'ai cliqué 2x sur le Bouton pour qu'il affiche "Hello... + le nom saisie",
5. J'ai reproduit le code suivant

public String helloButton_action() {
String name = (String)nameField.getText();
helloText.setText("Hello, " + name + "!");
return null;

c'est à ce niveau que netbean se block completement.

Netbean m'affiche 4 erreurs
1. Il ne peut pas trouver nameField
2. Il ne peut pas trouver getText()
3. il ne peut pas trouver helloText
4. il ne peut pas trouver setText()

En tant que nouveau dans netbean, je ne sais pas où peut se trouver le problème, specialement que je suis à la lettre toutes les étapes telles qu'elles se trouvent dans le tutoriel.

Mais, tout se trouve dans j'adresse web: http://www.netbeans.org/kb/60/web/helloweb.html

Merci de m'aider

8 réponses

daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
4 juin 2008 à 08:54
peut copier-coller l'intégralite de ton code ?

il se peut que tes composants graphiques n'est pas le bon nom, je m'explique :

il se peut qu'il s'appelle toujours JButton1, JTextField1, ...

as-tu utilisé le gui-builder ? (le truc qui te permet de faire toi meme ta fenetre en glissant les composants)

si oui alors quand tu es sur l'interface gui-builder, lic droit sur les composant et "change variable name" pour leur affecter le nom que tu souhaite.

voila j'espere t'avoir aider

tchû
0
Daromaster,

j'imagine que par voir si le componant s'appelle..., tu fais allusion au "id" du componant. j'ai encore verifié, dans la boite des propriétés, c'est bien -- "id = helloText" pour le static text et "id=nameField" pour le text Field.

Mais ce qui m'etonne est que netbean ne reconnaisse même pas les methodes comme .getText() et setText(); en plus, ce qui m'inquiete c'est que j'ai imprimé le tutoriel et je coche à chaque fois que j'ai accomplit une étape.

Merci encore pour ton aide. Voici, je te copie mon code, en esperant que je me suis trompé quelques part.

je commence par le code java, ensuite je mettrai aussi le code JSP

Code Java

*
* Page1.java
*
* Created on Jun 2, 2008, 6:17:56 PM
*/

package helloweb;

import com.sun.rave.web.ui.appbase.AbstractPageBean;
import javax.faces.FacesException;

/**
* <p>Page bean that corresponds to a similarly named JSP page. This
* class contains component definitions (and initialization code) for
* all components that you have defined on this page, as well as
* lifecycle methods and event handlers where you may add behavior
* to respond to incoming events.</p>
*
* @author Administrateur
*/
public class Page1 extends AbstractPageBean {
// <editor-fold defaultstate="collapsed" desc="Managed Component Definition">

/**
* <p>Automatically managed component initialization. <strong>WARNING:</strong>
* This method is automatically generated, so any user-specified code inserted
* here is subject to being replaced.</p>
*/
private void _init() throws Exception {
}

// </editor-fold>

/**
* <p>Construct a new Page bean instance.</p>
*/
public Page1() {
}

/**
* <p>Callback method that is called whenever a page is navigated to,
* either directly via a URL, or indirectly via page navigation.
* Customize this method to acquire resources that will be needed
* for event handlers and lifecycle methods, whether or not this
* page is performing post back processing.</p>
*
* <p>Note that, if the current request is a postback, the property
* values of the components do <strong>not</strong> represent any
* values submitted with this request. Instead, they represent the
* property values that were saved for this view when it was rendered.</p>
*/
@Override
public void init() {
// Perform initializations inherited from our superclass
super.init();
// Perform application initialization that must complete
// *before* managed components are initialized
// TODO - add your own initialiation code here

// <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
// Initialize automatically managed components
// *Note* - this logic should NOT be modified
try {
_init();
} catch (Exception e) {
log("Page1 Initialization Failure", e);
throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
}

// </editor-fold>
// Perform application initialization that must complete
// *after* managed components are initialized
// TODO - add your own initialization code here
}

/**
* <p>Callback method that is called after the component tree has been
* restored, but before any event processing takes place. This method
* will <strong>only</strong> be called on a postback request that
* is processing a form submit. Customize this method to allocate
* resources that will be required in your event handlers.</p>
*/
@Override
public void preprocess() {
}

/**
* <p>Callback method that is called just before rendering takes place.
* This method will <strong>only</strong> be called for the page that
* will actually be rendered (and not, for example, on a page that
* handled a postback and then navigated to a different page). Customize
* this method to allocate resources that will be required for rendering
* this page.</p>
*/
@Override
public void prerender() {
}

/**
* <p>Callback method that is called after rendering is completed for
* this request, if
init()
was called (regardless of whether
* or not this was the page that was actually rendered). Customize this
* method to release resources acquired in the
init()
,
*
preprocess()
, or
prerender()
methods (or
* acquired during execution of an event handler).</p>
*/
@Override
public void destroy() {
}

/**
* <p>Return a reference to the scoped data bean.</p>
*
* @return reference to the scoped data bean
*/
protected SessionBean1 getSessionBean1() {
return (SessionBean1) getBean("SessionBean1");
}

/**
* <p>Return a reference to the scoped data bean.</p>
*
* @return reference to the scoped data bean
*/
protected RequestBean1 getRequestBean1() {
return (RequestBean1) getBean("RequestBean1");
}

/**
* <p>Return a reference to the scoped data bean.</p>
*
* @return reference to the scoped data bean
*/
protected ApplicationBean1 getApplicationBean1() {
return (ApplicationBean1) getBean("ApplicationBean1");
}

public String helloButton_action() {
// TODO: Process the action. Return value is a navigation
// case name where null will return to the same page.

return null;
}

}


Code JSP

<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : Page1
Created on : Jun 2, 2008, 6:17:56 PM
Author : Administrateur
-->
<jsp:root version="2.1" xmlns:f="https://www.oracle.com/java/technologies/" xmlns:h="https://www.oracle.com/java/technologies/" xmlns:jsp="https://www.oracle.com/java/technologies/" xmlns:webuijsf="https://www.oracle.com/sun/">
<jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
<f:view>
<webuijsf:page id="page1">
<webuijsf:html id="html1">
<webuijsf:head id="head1" title="Hello Web">
<webuijsf:link id="link1" url="/resources/stylesheet.css"/>
</webuijsf:head>
<webuijsf:body id="body1" style="-rave-layout: grid">
<webuijsf:form id="form1">
<webuijsf:label for="nameField" id="label1" style="position: absolute; left: 24px; top: 24px" text="Name:"/>
<webuijsf:textField id="nameField" style="position: absolute; left: 96px; top: 24px" text="Enter Your Name"/>
<webuijsf:button actionExpression="#{Page1.helloButton_action}" id="helloButton" style="position: absolute; left: 264px; top: 24px" text="Say Hello"/>
<webuijsf:staticText id="helloText" style="position: absolute; left: 96px; top: 96px"/>
<h:panelGrid id="gridPanel1" style="height: 48px; left: 96px; top: 168px; position: absolute" width="192">
<webuijsf:messageGroup id="messageGroup1"/>
</h:panelGrid>
</webuijsf:form>
</webuijsf:body>
</webuijsf:html>
</webuijsf:page>
</f:view>
</jsp:root>
0
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
4 juin 2008 à 09:37
dsl, je ne vois pas d'où cela peut provenir.

je te souhaite bon courage pour tes recherches

tchû
0
bonjour à toi, j'ai le meme problème que toi et je voudrais savoir si tu avais réussi a faire fonctionner l'exemple.

A la compilation, il ne reconnait pas les variables utilisées dans la page JSP ainsi que la méthod getText() & setText() alors que j'ai importer le packaque java.lang.String.*;

Si quelqu'un a une solution n'hésiter pas ;-) . merci
0
Je viens d'ecrire aux gens de Netbean sur le site, en esperant qu'il seront en mesure de (nous) aider. Et, j'ai comme l'impression qu'il n'y a pas que nous deux. Et cela à avoir avec (comme tu le dis) aux importations de packages.

Attendons-voir, si quelqu'un ou peut-être les gens de netbean vont se manifester
0
John > richard
4 juin 2008 à 12:50
Salut,

Pour ce qui est de Netbeans moi j'ai utilisé les tutoriels en Français de cette page et j'ai pas eu de soucis. La F.A.Q NetBeans en Français m'a aussi bien aidée... Et pour l'aide il y à aussi la communauté francophone NetBeans.
0
Est-ce qu'il faut déclarer les variables dans le code Java pour les champ utilisé dans la page JSP? ou alors les variables utilisé dans le code Java sont les memes que les variables utilisé (déclarer) dans le code de la JSP?



public String helloButton_action() {
String name = (String)nameField.getText();
helloText.setText("Hello, " + name + "!");
return null;

est ce que helloText, nameField doit etre declarer dans le code Java ou c'est le nom du textField (de la JSP) qui est utilisé?

Voila jespere que c'est clair et que quelqu'un pourra nous aidez. Merci d'avance pour les réponse
0
Pour lier un composant graphique (page JSP) à un objet Java (BackingBean Java), tu fais simplement un clic droit sur ton composant puis "Add Binding Attribute".

Ca créé un objet java avec un getter et un setter qui a exactement le même nom que l'id de ton composant graphique et maintenant tu peux agir sur ton composant graphique dans ton code java.

En général tu met les interactions dans la méthode prerender() mais je ne suis pas encore expert ^^

C'est tout ballot à faire mais j'avoue que c'est le petit truc qui n'est indiqué nulle part en clair dans la doc.
J'utilise NetBeans 6.1

Sinon tu peux le faire toi même en déclarant l'objet, le getter et le setter dans le code.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pour lier un composant graphique au code java, tu dois tout simplement faire clic droit sur le composant graphique (vue design ou dans le navigator) puis "Add Binding Attribute".

Ce clic crée :
- un objet java du même type avec le même id que ton composant graphique
- un getter
- un setter

Tu peux bien sûr le faire manuellement. C'est ballot mais j'ai dû le trouver tout seul ^^ la doc n'en parle jamais de ce petit clic qui permet bien des choses !
0
younoh Messages postés 2 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 30 juin 2008
30 juin 2008 à 20:50
J'ai creé un projet avec visual JSF mais lorsque je manipule plusieurs composantes sur la meme page elle devient invisible lors de l'execution du projet .
merci de votre aide.
0
assurer toi que pour chaque composant graphique t'as une variable dans ton code java. (meme pour les balises page html forms et PanelGrid...)
ensuite pour lier le composant à la variable, tu ajoute un attribut (binding) dans ton code jsf.

exemple:

<f:view>
<webuijsf:page id="page1" binding="#{nomdupackage.nomdelaclasse.page1} ">
<webuijsf:html id="html1" binding="#{nomdupackage.nomdelaclasse.html} ">
<webuijsf:head id="head1" title="Hello Web" binding="#{nomdupackage.nomdelaclasse.head1} ">
<webuijsf:link id="link1" url="/resources/stylesheet.css"/ binding="#{nomdupackage.nomdelaclasse.link1) ">

<webuijsf:form id="form1" binding="#{nomdupackage.nomdelaclasse.form1}">

et les varaibles devraient exister dans ton code Java avec leurs accesseurs (get et set).
0
il fo ajouter les propriété " add binding attributes" à chak composant pour kil réagissent au code kil execute.fais clik droit sur chak composant et selectionne add bindinding attribute...Fais le pour tous les composants...
suis au ktes81@yahoo.fr (messenger).....Si tu a besoin d'un coup de main en visual jsf nhésite pa
0