Bonjour,
je développe un projet en jsf/jpa, et j'ai eu le problème suivant:
j'ai des données sous forme d'images, chaque image contient des nom par exemple, et ces nom sont classé par des Ring(RingA,RingB,...), j'ai 5 rings alors 5 images alors lorsque je veux afficher l'image qui contient le ring voulu, je fais la recherche dans la BD par nom, il récupère le ring et il affiche l'image qui le contient bon je sais que ce n'est pas si clair, alors voila un peu du code.
concrètement c'est une application réseau et je gère la partie transmission,mais ces le même principe.
Transmission.java
TransmissionDao.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @Entity @NamedQuery(name="Transmission.findAll", query="SELECT t FROM Transmission t") public class Transmission implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name="Site") private String site; @Column(name="[Ring CET]") private String ring_CET; getters() & setters()... }
TransmissionBean.java
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 @Stateless public class TransmissionDao { @PersistenceContext(name="PFE") private EntityManager em; public TransmissionDao(){} public Transmission getBySite(String site) { Query query = em.createQuery("SELECT t FROM Transmission t WHERE t.site=:site"); query.setParameter("site",site); List<Transmission> transmissions = query.getResultList(); Transmission result = null; if(transmissions != null && transmissions.size() == 1){ result = transmissions.get(0); } return result; } public Transmission affichRing(String site) throws IOException { String ring=getBySite(site).getRing_CET(); if(ring=="RingA") { FacesContext.getCurrentInstance().getExternalContext().dispatch("RingA.xhtml"); } return null; } }
Transmission.xhtml
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 @SessionScoped @Named public class TransmissionBean implements Serializable{ @Inject private TransmissionDao tDao; private String site; public String getSite() { return site; } public void setSite(String site) { this.site = site; } public Transmission getTransmissionBySite() throws IOException { return tDao.affichRing(site); } }
RingA.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <h:form> <h:panelGrid columns="3"> <h:outputLabel value="Recherche un graphe de transmission: "/> <h:inputText id="keyword" value="#{transmissionBean.site}" class="form-control" required="true" label="Keyword" /> <br /> <h:commandButton value="Rechercher par Site" class="btn btn-default"/> </h:panelGrid> <br/> </h:form> </div> <h:dataTable var="p" value="#{transmissionBean.transmissionBySite}" class="table table-bordered table-striped table-condensed"> </h:dataTable>
l'erreur est : the server encountered an internal error that prevented it from fulfilling this request
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3... <h:graphicImage value="../images/RingA.png"/> ...
voila maintenant j'essaie juste de rechercher le site qui appartient au RingA et afficher la page qui contient cet image (RingA.png).
je pense que le problème est que la méthode affichRing() n'arrive pas à atteindre 'return null' puisque j'ai une redirection avant vers une autre page , mais je ne sais pas faire autrement , qui a une solution pour cela , c'est hyper urgent,
et merci pour tous votre aide qui m'a permit d'atteindre ce modeste niveau![]()
Partager