Bonjour,
J'ai fait un code avec JSF identique à un exemple que j'ai trouvé sur le net (je suppose qu'il marche).
Je cherche juste à déclencher une action quand on clique sur lien.
la page jsp :
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<f:view>
<f:loadBundle var="bundle_app"
basename="com.celgene.ebanking.resources.application" />
<f:loadBundle var="bundle_msg"
basename="com.celgene.ebanking.resources.messages" />
<html>
<head>
<title><h:outputText value="#{bundle_app['application.title']}" /></title>
</head>
<body>
<h:form>
<ul>
<li><h:commandLink
action="#{homeController.reportCreationForward}"
value="#{bundle_msg['report.creation']}" actionListener="#{parametersAction.initCompanyList}"/></li>
</ul>
</h:form>
</body>
</html>
</f:view> |
le actionListener pointe sur parametersAction.initCompanyList qui est dans mon code java :
Code :
- package com.celgene.ebanking.actions;
- import java.awt.event.ActionEvent;
- import java.io.Serializable;
- import java.util.List;
- import java.util.Map;
- import java.util.TreeMap;
- import com.celgene.ebanking.beans.ParametersBean;
- import com.celgene.ebanking.dao.ParametersDAO;
- public class ParametersAction implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 6639794340097765103L;
- private List<ParametersBean> companyList;
- private TreeMap<Integer, String> companyMap;
- public List<ParametersBean> getCompanyList() {
- return companyList;
- }
- public ParametersAction() {
- }
- public void initCompanyList(ActionEvent e) {
- ParametersDAO parametersDAO = new ParametersDAO();
- companyList = parametersDAO.getCompanyList();
- companyMap = new TreeMap<Integer, String>();
- int key = 0;
- String value = null;
- for (ParametersBean parameter : companyList) {
- value = parameter.getCompanyId() + "-" + parameter.getCompanyName()
- + "-" + parameter.getPaymentCurrency();
- companyMap.put(key++, value);
- }
- }
- public Map<Integer, String> getCompanyMap() {
- return companyMap;
- }
- public void setCompanyMap(TreeMap<Integer, String> companyMap) {
- this.companyMap = companyMap;
- }
- public String batchNumbersForward() {
- return "batchNumbersForward";
- }
- }
|
le managed bean parametersAction a bien ete ajoute dans le faces-config :
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<managed-bean>
<managed-bean-name>parametersAction</managed-bean-name>
<managed-bean-class>com.celgene.ebanking.actions.ParametersAction</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>
|
Quand je clique sur le lien j'ai l'erreur :
type Rapport d'exception
message description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
exception javax.servlet.ServletException: Exception while invoking expression #{parametersAction.initCompanyList}
javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
cause mère javax.faces.el.EvaluationException: Exception while invoking expression #{parametersAction.initCompanyList}
org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:168)
javax.faces.component.UICommand.broadcast(UICommand.java:89)
javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.0.28.
|
Ca marche pas pourquoi ? que manque-t-il ?
http://www.laliluna.de/first-java- [...] orial.html
Message édité par Giz le 06-09-2007 à 18:53:18
---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3