Remplacement page JSF par une page JSP
Bonjour,
Je débute en J2EE et je n'arrive pas à faire dialoguer une page JSP avec un JavaBean (qui dialogue avec un EJB) en utilisant la balise : jsp:useBean.
Le projet fonctionne avec une page JSF, je ne comprend pas pourquoi cela ne fonctionne pas avec une JSP :(
code de la page JSP :
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 37 38 39 40 41 42 43 44 45 46 47
|
<%@page import="bean.Conversion"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Conversion entre les euros et les francs</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h2 align="center">Conversion entre les euros et les francs</h2>
<hr />
<h4 align="center">
<form action="index.jsp">
<input type="text" name="euro" value="" size="25" />
€uro(s)
<input type="submit" value="Conversion Euros" />
</form>
<br>
<form action="index.jsp">
<input type="text" name="franc" value="" size="25" />
Franc(s)
<input type="submit" value="Conversion Franc" />
</form>
</h4>
<%
if(request.getParameter("franc")!= null || request.getParameter("euro")!= null)
{
%>
<jsp:useBean id="conv" class="Conversion" scope="session">
<%
if(request.getParameter("franc")!= null)
{
%>
<%
}
else
{
}
%>
</jsp:useBean>
<%
}
%>
</body>
</html> |
code du JavaBean :
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
| package bean;
import javax.annotation.PreDestroy;
import session.Conversions;
import javax.ejb.EJB;
import javax.faces.bean.*;
@ManagedBean
@SessionScoped
public class Conversion {
private double euro;
private double franc;
@EJB Conversions convertir;
public double getEuro() { return euro; }
public void setEuro(double euro) { this.euro = euro; }
public double getFranc() { return franc; }
public void setFranc(double franc) { this.franc = franc; }
public Conversions getConvertir() { return convertir; }
public void euroFranc() { franc = convertir.euroFranc(euro); }
public void francEuro() { euro = convertir.francEuro(franc); }
@PreDestroy
public void fin() {
convertir.fin();
}
} |
code de web.xml :
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
| <?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</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>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
<welcome-file-list>
<!--<welcome-file>faces/index.xhtml</welcome-file>-->
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app> |
l'exception remontée est :
Code:
javax.servlet.ServletException: java.lang.InstantiationException: Conversion
J'ai essayé de le faire sans passer par la balise jsp:usebean, en créant directement un objet de type Conversion cela fonctionne jusqu'au moment ou je veut utiliser les méthode euroFranc ou francEuro,
L'erreur remontée est la suivante :
Code:
org.apache.jasper.JasperException: java.lang.NullPointerException
Merci pour votre aide