Bonjour,
J'essaye de me mettre à seam, et pour l'instant je n'arrive pas à grand chose.
Dans l'etat actuel de mon projet, je peux afficher la partie web, mais les EL ne sont jamais interprétés. J'ai donc du zapper un truc.
J'utilise Jboss 4.2.3, Seam 2.1.1, et maven (oui, ça aide pas).
J'ai essayé de suivre des tutos, mais comme aucun ne dit la même chose, je n'ai aucune idée de ce que j'ai fait.
J'ai une page xhtml sur laquelle mon index.html pointe quand on lance l'application, et je voudrais résoudre un EL pour afficher un truc.
hello, c'est un EJB session :
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 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <head> <title>test seam</title> </head> <body> <f:view> <h:commandButton value="hello" action="#{hello.sayHello()}" /> <br/> <h:outputText value="#{hello.result}" /> </f:view> </body> </html>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Local public interface HelloWorldBS { public String sayHello(); }Les fichiers de conf :
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 @Stateless @Name("hello") public class HelloWorldBO implements HelloWorldBS { private String result; @Logger private Log log; @Override public String sayHello() { log.info("appel de say hello"); result = new String("Hello World"); return null; } @Out public String getResult() { return result; } }
web.xml
faces-config.xml
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 <web-app> <display-name>seamprojectWar</display-name> <listener> <listener-class>org.jboss.seam.servlet.SeamListener</listener-class> </listener> <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param> <context-param> <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name> <param-value>true</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.seam</url-pattern> </servlet-mapping> <session-config> <session-timeout>10</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
components.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <faces-config> <application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> </application> </faces-config>
pages.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <components> <core:init jndi-pattern="seamproject/#{ejbName}/local" debug="true" /> <transaction:ejb-transaction /> </components>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <pages> <page view-id="/bouton.xhtml"> <navigation from-action="#{hello.sayHello()}"> <redirect view-id="/bouton.xhtml" /> </navigation> </page> </pages>
Le bouton s'affiche, mais quand je clique dessus, il ne se passe rien. C'est probablement le B.A-BA que je demande, mais j'ai beau triturer le code dans tous les sens, ça ne change rien.
J'ai essayé sans le pages.xml, sans le @out dans la session, etc.. bref, je ne sais pas du tout quoi faire, et les tutos ne m'aident pas du tout.
Merci de votre aide.
Partager