无法使用: “Bean 无法解析为类型”
我只是在玩JSP。我只是想测试一些
东西,但我不能。每次如果我使用
,我都会收到错误。即使我只有这个,我也会收到一个错误:
<%@ 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>
没有
它运行正常。使用
我收到如下错误:
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>
我正在使用 Eclipse、Tomcat 7.0.23 和 Java 1.7.0_01。
有什么想法吗?
PS:我不得不将端口8xxx更改为9xxx,因为oracle DB使用标准8xxx。但这可能不是问题的原因。
I'm just playing around with JSP. I just wanted to test some <jsp:useBean>
stuff, but I can't. Every time if I'm using <jsp:useBean>
, I get an error. Even if I just have this, I get an error:
<%@ 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>
Without the <jsp:useBean>
it runs fine. With the <jsp:useBean>
I get an error like:
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>
I am using Eclipse, Tomcat 7.0.23 and Java 1.7.0_01.
Any ideas?
PS: I had to change the port 8xxx to 9xxx because the oracle DB is using the standard 8xxx. But that's likely not the cause of the problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将类放入包中,以便能够在其他类中使用它们。默认包中的类对于包中的类是不可见的(就像 JSP 最终的结果)。
因此,为
Users
类提供一个package
,如下所示:重新编译并将其放入
/WEB-INF/classes/com/example/Users.class
。然后您可以按如下方式引用它:
与具体问题无关,使用复数作为实体的类名通常是一种味道。该类的单个实例真的代表多个用户吗?例如,为什么您没有
List
?或者它实际上代表单个用户?然后应将其命名为User
。You need to put classes in a package in order to be able to use them in another classes. Classes in the default package are invisible to classes which are by itself in a package (like as the JSP would end up).
So, give the
Users
class apackage
like so:Recompile and put it in
/WEB-INF/classes/com/example/Users.class
.Then you can reference it as follows:
Unrelated to the concrete problem, having a plural as class name of an entity is usually a smell. Does a single instance of that class really represent multiple users? Why would you not have a
List<User>
for example? Or does it actually represent a single user? It should then be namedUser
instead.