Erreur avec Named au lieu de ManagedProperty
Bonjour,
Je crée un nouveau projet JSF.
J'ai réussi à faire un build avec Maven d'une demo mais pas le test avec Wildfly intégré à Eclipse, mais le problème que je rencontre actuellement est le suivant:
Lorsque je cherche à faire un projet s'inspirant de cette demo en créant un formulaire d'inscription pour étudiants: j'ai une version avec certains import javax.faces qui compile et une autre avec jakarta.* qui elle ne compile pas.
Code:
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
| <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<meta charset="UTF-8">
<title>Insert title here</title>
</h:head>
<h:body>
<f:view>
<h:form>
<h:panelGrid columns="2">
<h:outputText value="Entrer votre prenom" />
<h:panelGroup>
<h:inputText id="firstname" value="#{studentControllerBean.firstName}" required="true">
</h:inputText>
</h:panelGroup>
<h:outputText value="Entrer votre nom de famille" />
<h:panelGroup>
<h:inputText id="lastname" value="#{studentControllerBean.lastName}" required="true">
</h:inputText>
</h:panelGroup>
<h:outputText value="Selectionner un cursus (abonnement)" />
<h:panelGroup>
<h:selectOneListbox id="abonne" value="#{studentControllerBean.abonne}">
<f:selectItems value="#{studentControllerBean.abonneItems}"/>
</h:selectOneListbox>
</h:panelGroup>
</h:panelGrid>
<h:commandButton value="Valider" action="#{studentControllerBean.registeroutcome}"/>
</h:form>
</f:view>
</h:body>
</html> |
Le code simplifié de mon bean:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
@ManagedBean
@RequestScoped
public class StudentControllerBean {
public String firstName;
public String lastName;
public int abonne;
public Student registerStudent;
@Inject
public StudentDAO studentDAO;
public List<Student> students;
// en dur pour l'instant
private SelectItem[] abonneItems = {
new SelectItem(1, "science"),
new SelectItem(2, "engineering"),
new SelectItem(3, "building") }; |
si je remplace les imports (en commentaire quand ça marchait, et decommenté la nouvelle version
Code:
1 2 3 4 5
|
import javax.faces.bean.ManagedBean;
///import jakarta.inject.Named; // prefer this on : jakarta CDI
//import javax.faces.bean.RequestScoped;
import jakarta.enterprise.context.RequestScoped; |
ça ne compile plus. J'obtientdes 'cannot find symbol'.
Que faire, car j'ai vu que la version qui marche est deprecated.
Mon pom:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>8.0.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish/jakarta.faces -->
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.faces</artifactId>
<version>4.0.0-M1</version>
<scope>provided</scope>
</dependency> |
Question: est ce qu'il faut que j'utilise jakarta au lieu de javax seulement dans le pom et chercher une autre cause à mon problème de déploiement?
(J'ai regardé des fils de discussion https://stackoverflow.com/questions/...ries-via-maven)