Struts2教程是否有命名错误的文件?HelloWorld.java中的HelloWorldAction

Struts2教程是否有命名错误的文件?HelloWorld.java中的HelloWorldAction,java,ant,struts2,Java,Ant,Struts2,我正在上Struts2教程 他们有一个文件HelloWorld.java,该文件定义了一个类HelloWorldAction,编译器(从ant运行)抱怨: [javac] HelloWorld.java:6: class HelloWorldAction is public, should be declared in a file named HelloWorldAction.java 很明显,我可以解决这个问题,但是教程真的错了吗,或者我缺少一些配置设置吗?我已经在Message.java

我正在上Struts2教程

他们有一个文件
HelloWorld.java
,该文件定义了一个类
HelloWorldAction
,编译器(从ant运行)抱怨:

[javac] HelloWorld.java:6: class HelloWorldAction is public, should be declared in a file named HelloWorldAction.java
很明显,我可以解决这个问题,但是教程真的错了吗,或者我缺少一些配置设置吗?我已经在Message.java中定义了class
MessageStore
的教程中解决了这个问题,我想知道我是否遗漏了一些内容。

标题说

步骤2-创建操作类HelloWorldAction.java


所以只需重命名文件,这可能是打字错误。没有这样的配置。Java总是希望您相应地命名文件。

是的,这是错误的。您需要将其命名为HelloWorldAction.java


必须始终命名为
Foo.java
,无论您使用的是什么框架,否则javac都会抱怨。

作为一种意见,如果您打算花时间学习java MVC框架,我会花时间学习Spring MVC。Struts即将退出。@jeremyjjbrown。一点也不,因为这是Struts2,不是Struts。如今,春季MVC在北美更受欢迎,而在亚洲就不流行了。有了约定插件和jQuery插件,SpringMVC就没有什么值得羡慕的了(除了单元测试,这就不那么容易了)。它还有很多现成的东西,在春天你必须自己处理。事实上,Struts2付出了与它的前身同名的代价,尽管它与它几乎没有共同之处;哎呀。我修好了。
public class Foo