当前位置: 首页 > 知识库问答 >
问题:

tomcat 7显示hello world jsp中的编译错误

慕容俭
2023-03-14

•JSP(它所做的只是显示一个字符串)

<%@page import="HelloWorld.HelloWorld" %>  
<HTML>  
<HEAD>  
<TITLE>Hello World/TITLE>  
</HEAD>  
<BODY>  
<H1>Hello World</H1>  
String is: <%= HelloWorld.HelloWorld.display() %>  
</BODY>  
</HTML>  

•JSP位置:tomcat/webapps/hello/hello.jsp

·Java类(它所做的只是返回一个字符串)
包HelloWorld;

public class HelloWorld {  
public static String display() {  
 return "Hello World!"; // Display the string.  
   }  
}  
<?xml version="1.0" encoding="Cp1252"?>  
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>  
<web-app>  
<display-name>hello</display-name>  
<description>no description</description>  
<servlet>  
<servlet-name>hello</servlet-name>  
<display-name>hello</display-name>  
<description>no description</description>  
<jsp-file>/hello.jsp</jsp-file>  
</servlet>  
<session-config>  
<session-timeout>30</session-timeout>  
</session-config>  
</web-app>  

是什么引起的?

谢谢,

共有1个答案

娄浩荡
2023-03-14

问题似乎与类名等于包名有关。存在名称冲突,因为您正在导入包,并且在调用display()方法时还使用了类的fqn。

因此,您导入了helloworld.helloworld,然后尝试执行helloworld.helloworld.display()。Java将HelloWorld.HelloWorld.Display的第一部分作为您导入的类,然后尝试在该类中寻找一个名为HelloWorld的静态成员。

长话短说,要么删除导入(因为您正在使用fqn),要么在调用display()时不使用fqn。

 类似资料:
  • 问题内容: 调用显示编译时错误,并显示以下消息: getSupportFragmentManager()。getFragments()只能在同一库组中调用(groupId = com.android.support) 我在中导入了以下类: 延伸。 我的项目模块级别文件如下: 这是inside 方法的源代码。 我最近将Android Studio更新到了最新的稳定版本(2.3),并且还更新了Andr

  • 我想知道如何在Android Studio中显示编译错误。我试了下面这个:

  • 编辑:发现问题更加尖锐。当我禁用它时,它停止显示错误。 当我从Visual Studio启动一个新的Blazor fullstack项目时,它在IDE中显示错误。我看过Visual Studio即使构建了项目也会显示错误,但似乎没有帮助。 我遵循了关于Blazor的指南(https://Blazor.net/docs/get-starte.html) 编辑:更新到最新版本,运气不好 似乎更尖锐:h

  • 自从新的Android Studio3.6更新后,我的数据绑定类显示“无法解析符号” 代码本身完全没有问题,甚至可以成功编译,但在我调用绑定类的任何地方,Android Studio都会给我“无法解析符号”错误。这将贯穿我在其中使用数据绑定的每个类或xml。 你们中有人经历过同样的事吗?这似乎很奇怪,3.6的更新竟然做到了这一点。使用的分级版本为3.6.1

  • 问题内容: 编写并运行此代码后,编译器将显示Expected Declaration错误: 问题答案: 之所以会出现此错误,是因为您在类中的错误位置放置了代码,因此将其移至任何函数或viewDidLoad方法中。 您只能在类范围内声明,而不能执行表达式。 它将正常工作。 编辑: 在您的第二个UIViewController只是通过NSUserDefaults这种方式阅读highScore : 因此