java - Struts 2 中的注释支持

标签 java struts2 web-frameworks

我目前正在评估 Struts 2。官方文档包含一个 HelloWorld 示例,其中包含以下 Java 和 JSP 代码:

Java

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport {

    public static final String MESSAGE = "Struts is up and running ...";

    public String execute() throws Exception {
        setMessage(MESSAGE);
        return SUCCESS;
    }

    private String message;

    public void setMessage(String message){
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}

JSP

<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
    <head>
        <title>Hello World!</title>
    </head>
    <body>
        <h2><s:property value="message" /></h2>
    </body>
</html>

该示例使用以下 XML 文件指定此操作的 URL,并将操作和 View 绑定(bind)在一起

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="tutorial" extends="struts-default">
        <action name="HelloWorld" class="tutorial.HelloWorld">
            <result>/HelloWorld.jsp</result>
        </action>
    </package>
</struts>

我的问题(最后)是:这真的是 Struts2 的最先进技术吗?我被引导相信 XML 配置和子类化特定基类 (ActionSupport) 的必要性已被弃用。我认为可以使用注释来代替配置。

几个更具体的问题:

  • 是否有必要为每种请求类型创建一个 Action 类,或者是否可以在一个 eaction 中定义多个方法,每个方法可以处理不同的请求?
  • 是否有必要为您想要提供给 View 的数据成员(上例中的“消息”)定义公共(public) getter 和 setter?

如果这是 Struts2 中最先进的技术,那么与 Struts1 相比似乎并没有多大改进,但我怀疑这只是一个糟糕的例子。

谢谢, 唐

最佳答案

一些答案​​(不是全部):

  • 您可以向同一个 Action 类添加多个方法。其中每个都需要返回一个字符串。
  • 我认为需要公共(public) getter 和 setter。
  • 提供的基类仅定义某些有用的值,例如常量 SUCCESS。

您可以通过“零配置”功能(zero conf doc)来使用注释

关于java - Struts 2 中的注释支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786840/

相关文章:

python - 使用Python进行商业Web应用程序开发

c# - 寻找 ASP.NET MVC 和 MonoRail 之间的现代比较

java - Java 和 JavaScript 中的 'Go to definition' 如何使用 Emacs?

java - 尝试运行简单的 Kafka Stream 应用程序时收到异常

java - 如何在java中将滚动条添加到textarea

java - Struts2 中 getContextMap() 和 getValueStack() 之间的区别?

java - Struts2 portlet NotSerialized 异常

javascript - 在 JavaScript 中评估 struts2 标签

java - 将 ASP.NET 应用程序迁移到 Java

java - 限制对象创建的策略或设计模式