Salut, j’essaie de comstackr un simple fichier jsp avec tomcat mais j’ai gardé ce message d’erreur
org.apache.jasper.JasperException: Unable to comstack class for JSP: An error occurred at line: 13 in the jsp file: /WebContent/test.jsp Member cannot be resolved to a type 10: 11: <% 12: //MyBatisDao myDao = new MyBatisDao(); 13: List list; // = myDao.func("test"); 14: //out.println("Result list= " + list); 15: %> 16:
test.jsp (à Webcontent)
Insert title here <% List list; %>
Membre.java
package pageNumber; public class Member { private Ssortingng id; private Ssortingng pw; private int point; private int lvl; public Member() {} public Member(Ssortingng id, Ssortingng pw, int point, int lvl) { this.id = id; this.pw = pw; this.point = point; this.lvl = lvl; } public Ssortingng getId() { return id; } public void setId(Ssortingng id) { this.id = id; } public Ssortingng getPw() { return pw; } public void setPw(Ssortingng 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 Ssortingng toSsortingng() { 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é. De l’aide?
Modifier: après avoir modifié ma déclaration d’importation de
à
Cela m’a en fait donné un nouveau type d’erreur:
org.apache.jasper.JasperException: Unable to comstack 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: 10: 11: <% 12: List list; // = myDao.func("test"); 13: %> 14: 15:
Cela 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.*" %>
Vous avez tout de même un problème majeur en utilisant des scriptlets dans votre JSP . Reportez-vous à Comment éviter le code Java dans les fichiers JSP? et commencez à pratiquer 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.*" %>
Votre ligne:
<%@ page import="pageNumber.*, java.util.*, java.io.*" %>
Nécessite un symbole @
avant %
comme ceci:
<%@ page import="pageNumber.*, java.util.*, java.io.*" @%>
Supprimez le fichier servlet du projet Web, comme vous le savez déjà, le serveur d’application / Web déjà.
Je faisais face au problème, j’ai constaté que cette bibliothèque ecj plus ancienne est présente dans le répertoire Apache Tomcat 1) supprime l’ancien fichier jar de la bibliothèque Apache Tomcat 2) nettoie le projet 3) le construit. Cela a commencé à fonctionner comme prévu.