Java struts 2中返回语句之间的差异

Java struts 2中返回语句之间的差异,java,struts2,struts,Java,Struts2,Struts,在struts 2中为您的execute方法返回SUCCESS和Action.SUCCESS有什么区别?我知道如何返回SUCCESS字符串,但我无法计算操作。SUCCESSone?操作。SUCCESS是操作界面中定义的字符串常量 它将在实现此接口的所有操作类中可用。您自己的动作类继承这个常量 因此,在实现操作的类中,操作.SUCCESS和成功之间几乎没有区别看看操作的代码: 公共静态最终字符串SUCCESS=“SUCCESS” 我认为这一行比任何Action的单词解释得都好。SUCCESS和st

在struts 2中为您的execute方法返回
SUCCESS
Action.SUCCESS
有什么区别?我知道如何返回
SUCCESS
字符串,但我无法计算
操作。SUCCESS
one?

操作。SUCCESS
操作
界面中定义的
字符串
常量

它将在实现此接口的所有操作类中可用。您自己的动作类继承这个常量

因此,在实现
操作的类中,
操作.SUCCESS
成功
之间几乎没有区别

看看
操作的代码

公共静态最终字符串SUCCESS=“SUCCESS”


我认为这一行比任何
Action的单词解释得都好。SUCCESS
和string constant
“SUCCESS”
是相同的。

它们都是字符串映射到“SUCCESS”字符串


如果指向
Action
类中的相同常量,则它们是相同的。但是要使用第一种情况,需要action类通过扩展实现
action
接口的
ActionSupport
更好地实现
action
接口,或者使用静态导入。第二种情况是访问静态资源的常用方法。

那么为什么不使用“成功”而不是定义常量变量?@link,因为使用常量字段比每次键入常量值更好。如果值改变了,你只有一个地方需要改变它。此外,如果您不小心键入了
Success
,IDE会让您知道,如果您键入了“Success”,则情况不会如此,如果action类实现了
action
,则很难找到此类错误。
public interface Action {

    /**
     * The action execution was successful. Show result
     * view to the end user.
     */
    public static final String SUCCESS = "success";