Hallo Ik probeer een eenvoudig JSP-bestand te compileren met Tomcat, maar ik bleef dit foutbericht
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 (bij 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>
Member.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;
}
}
Voor zover ik weet, heb ik dit probleem omdat mijn kater het klassenbestand niet kan vinden,
dus ik heb mijn klasbestanden op
. geplaatst
- build/classes/pageNumber (waarbij pageNumber mijn pakketnaam is)
- WEB-INF/classes/pageNumber
- tomcat\work\Catalina\localhost_\org\apache\jsp\pageNumber
maar het is allemaal niet gelukt.
Hulp?
Bewerken:
Nadat ik mijn invoeraangifte heb gewijzigd van
<%@ page import="pageNumber.*, java.util.*, java.io.*" %>
naar
<%@ page import="java.util.List, pageNumber.Member" %>
Het gaf me eigenlijk een nieuw type fout:
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>
Antwoord 1, autoriteit 100%
Dit kan worden veroorzaakt door een jar-conflict. Verwijder de servlet-api.jar in uw servlet/WEB-INF/ directory, %Tomcat home%/lib heeft deze lib al.
Antwoord 2, autoriteit 8%
Het probleem wordt veroorzaakt omdat u de pageNumber.Member
Class in uw JSP moet importeren. Zorg ervoor dat u ook een andere pakketten en klassen wilt opnemen zoals java.util.List
.
<%@ page import="pageNumber.*, java.util.*" %>
Toch heb je een groot probleem met het gebruik van scriptlets in je JSP . Raadpleeg Hoe u Java-code in JSP-bestanden kunt vermijden? en beginnen met het beoefenen van el en jstl en focus meer op een MVC-oplossing.
Antwoord 3
Voeg uw ledenklasse toe aan uw JSP:
<%@ page import="pageNumber.*, java.util.*, java.io.*,yourMemberPackage.Member" %>
Antwoord 4
Het is niet nodig om handmatig klassenbestanden op Tomcat te plaatsen. Zorg ervoor dat uw pakketverklaring voor Member
correct is gedefinieerd als
package pageNumber;
Sindsdien is dat het enige aanvraagpakket dat u in uw JSP importeert.
<%@ page import="pageNumber.*, java.util.*, java.io.*" %>
Antwoord 5
Deze regel van u:
<%@ page import="pageNumber.*, java.util.*, java.io.*" %>
vereist een @
symbool vóór %
als volgt:
<%@ page import="pageNumber.*, java.util.*, java.io.*" @%>
Antwoord 6
Verwijder de servlet JAR van webproject, zoals elke hoe, de applicatie / webserver al had.
Antwoord 7
Ik was tegenover het probleem, ik vond dat die oudere ECJ-bibliotheek aanwezig is in Apache Tomcat-directory
1) Verwijder de oude pot uit Apache Tomcat-bibliotheek
2) Maak het project schoon
3) Bouw het op.
Het begon te werken zoals verwacht.