Salut, j'essaie de compiler un simple fichier jsp avec Tomcat mais je continuais à avoir ce message d'erreur
org.Apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 13 in the jsp file: /WebContent/test.jsp
Member cannot be resolved to a type
10: <body>
11: <%
12: //MyBatisDao myDao = new MyBatisDao();
13: List<Member> list; // = myDao.func("test");
14: //out.println("Result list= " + list);
15: %>
16: </body>
test.jsp (à Webcontent)
<%@ page language="Java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="pageNumber.*, Java.util.*, Java.io.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
List<Member> list;
%>
</body>
</html>
Membre.Java
package pageNumber;
public class Member {
private String id;
private String pw;
private int point;
private int lvl;
public Member() {}
public Member(String id, String pw, int point, int lvl) {
this.id = id;
this.pw = pw;
this.point = point;
this.lvl = lvl;
}
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getPw() { return pw; }
public void setPw(String pw) { this.pw = pw; }
public int getPoint() { return point; }
public void setPoint(int point) { this.point = point; }
public int getLvl() { return lvl; }
public void setLvl(int lvl) { this.lvl = lvl; }
public String toString() {
return "ID= " + id + ", PW= " + pw + ", POINT= " + point + ", LVL= " + lvl;
}
}
Autant que je sache, j’ai ce problème parce que mon Tomcat ne peut pas localiser le fichier de classe, J’ai donc placé mes fichiers de classe à
mais rien de tout cela a fonctionné . Toute aide?
Edit: Après avoir modifié ma déclaration d'importation de
<%@ page import="pageNumber.*, Java.util.*, Java.io.*" %>
à
<%@ page import="Java.util.List, pageNumber.Member" %>
Cela m'a en fait donné un nouveau type d'erreur:
org.Apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 15 in the generated Java file
Only a type can be imported. pageNumber.Member resolves to a package
An error occurred at line: 12 in the jsp file: /WebContent/test.jsp
Member cannot be resolved to a type
9: </head>
10: <body>
11: <%
12: List<Member> list; // = myDao.func("test");
13: %>
14: </body>
15: </html>
Ceci peut être causé par un conflit de pots. Supprimez le fichier servlet-api.jar de votre répertoire servlet/WEB-INF /.% Tomcat home%/lib possède déjà cette bibliothèque.
Le problème est dû au fait que vous devez importer la classe pageNumber.Member
dans votre JSP. Assurez-vous d'inclure également d'autres packages et classes comme Java.util.List
.
<%@ page import="pageNumber.*, Java.util.*" %>
Néanmoins, vous avez un problème majeur en utilisant en utilisant des scriptlets dans votre JSP. Reportez-vous à Comment éviter le code Java dans les fichiers JSP? et commencez à vous entraîner EL et JSTL et à vous concentrer davantage sur une solution MVC.
inclure votre classe de membre à votre jsp:
<%@ page import="pageNumber.*, Java.util.*, Java.io.*,yourMemberPackage.Member" %>
Il n'est pas nécessaire de mettre manuellement des fichiers de classe sur Tomcat. Assurez-vous simplement que votre déclaration de package pour Member
est correctement définie en tant que
package pageNumber;
puisque c’est le seul package d’application que vous importez dans votre JSP.
<%@ page import="pageNumber.*, Java.util.*, Java.io.*" %>
Je faisais face au problème, j'ai constaté que cette ancienne bibliothèque ecj est présente dans le répertoire Apache Tomcat 1) supprimez l'ancien fichier jar de la bibliothèque Apache Tomcat 2) nettoie le projet 3) le construit. Il a commencé à fonctionner comme prévu.
Supprimez le fichier servlet du projet Web, comme vous le savez déjà, le serveur d'application/Web déjà.
Votre ligne:
<%@ page import="pageNumber.*, Java.util.*, Java.io.*" %>
Requiert un symbole @
avant %
comme ceci:
<%@ page import="pageNumber.*, Java.util.*, Java.io.*" @%>