Ne pouvez pas utiliser <jsp:useBean>: “Bean ne peut pas être résolu de type”
Je suis en train de jouer avec JSP. Je voulais juste tester certains <jsp:useBean>
trucs, mais je ne peux pas. Chaque fois que, si je suis en utilisant <jsp:useBean>
, j'obtiens une erreur. Même si j'ai juste ceci, j'obtiens une erreur:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>Test</title>
</head>
<body>
<jsp:useBean id="mybean" class="Users" scope="session" >
<jsp:setProperty name="mybean" property="name" value="Hello world" />
</jsp:useBean>
</body>
</html>
Sans <jsp:useBean>
il fonctionne très bien. Avec le <jsp:useBean>
j'obtiens une erreur comme:
Servlet.service() for servlet [jsp] in context with path [/JSPTest] threw exception [Unable to compile class for JSP:
An error occurred at line: 10 in the jsp file: /index.jsp
Users cannot be resolved to a type
7: <title>Insert title here</title>
8: </head>
9: <body>
10: <jsp:useBean id="mybean" class="Users" scope="session" >
11: <jsp:setProperty name="mybean" property="name" value="Hello world" />
12: </jsp:useBean>
13: </body>
Je suis à l'aide d'Eclipse, Tomcat 7.0.23 et Java 1.7.0_01.
Des idées?
PS: j'ai dû changer le port 8xxx à 9xxx parce que l'oracle DB est l'utilisation de la norme 8xxx. Mais c'est probablement pas la cause du problème.
OriginalL'auteur OverStack | 2011-11-30
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de mettre les classes dans un package afin d'être en mesure de les utiliser dans un autre cours. Les Classes dans le package par défaut sont invisibles pour les classes qui sont par lui-même dans un paquet (comme la JSP finirait).
De donner la
Users
classe unpackage
comme suit:Recompiler et le mettre dans
/WEB-INF/classes/com/example/Users.class
.Vous pouvez y faire référence comme suit:
Sans rapport avec à la de béton problème, ayant un pluriel comme nom de classe d'une entité est généralement une odeur. N'a qu'une seule instance de cette classe représentent plusieurs utilisateurs? Pourquoi voudriez-vous pas avoir un
List<User>
par exemple? Ou faut-il réellement représenter un seul utilisateur? Il devrait ensuite être nomméUser
à la place.Qui ne fonctionne que si vous utilisez l'ancienne école les scriptlets pour accéder aux données, ce qui signifie que vous faites un pas en arrière de la bonne approche MVC (pas que
<jsp:useBean>
est partie comme elle a essentiellement ne lie M avec des V sans C). les Scriptlets sont cependant découragé près d'une décennie. Voir aussi stackoverflow.com/questions/3177733/... et stackoverflow.com/tags/jsp/infoOh bon à savoir. Mais c'est vraiment stressant. Je tought jsp est agréable car vous pouvez utiliser votre javacode/classes ET si vous voulez les utiliser, vous pouvez simplement utiliser aussi javacode (scriptlets). Et maintenant, je dois apprendre la jstl et d'autres choses. Ce n'est pas gentil de jsp ^^ - mais oui, je vais essayer. Mais il semble vraiment complexe :/
Vous pouvez également écrire des pages Jsp "PHP", mais qui serait en fin de compte n'en maintenabilité catastrophe 🙂
OriginalL'auteur BalusC