📜  讨论Struts 2(1)

📅  最后修改于: 2023-12-03 15:41:42.984000             🧑  作者: Mango

讨论Struts 2

Struts 2是一个基于MVC模式的开源的web应用框架。它是Struts 1的下一代产品,采用了WebWork框架。

功能特性

Struts 2具有以下几个主要功能特性:

  1. MVC架构:采用Model-View-Controller(MVC)设计模式可更好地实现应用程序的分层和功能单元的复用。
  2. 配置优雅:提供多种配置方式,包括XML、注解和Java Config等。
  3. 支持OGNL表达式语言:可将数据从Action传递到视图层,同时使用OGNL表达式语言在JSP页面中取值,简化了数据处理的流程。
  4. 国际化和本地化:easy to support多语言处理,包括货币、日期、数字格式化,时间以及时区计算等。
  5. 数据验证:提供了Validation Framework,可以处理表单元素验证,包括数据类型、字段为空、正则等验证。
架构

Struts 2框架的主要结构包括:

  1. Action:实现业务逻辑的Java类。
  2. ActionContext:用于在请求处理的过程中,提供Action中调用所需的上下文环境。
  3. Interceptor:实现AOP(面向切面编程)的媒介,处理请求和响应。
  4. Result:Action执行成功后将结果返回给客户端。
示例代码

以下是一个简单的使用Struts 2框架的代码示例:

首先,我们需要在pom.xml文件中添加Struts 2依赖项:

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.5.26</version>
</dependency>

然后编写Action类:

package com.example.action;

import com.opensymphony.xwork2.ActionSupport;

public class MyAction extends ActionSupport {

    private String message;
    
    public String execute() {
        message = "Hello world!";
        return SUCCESS;
    }
    
    public String getMessage() {
        return message;
    }

}

在struts.xml中配置Action和Result:

<struts>
    <package name="mypackage" extends="struts-default">
        <action name="myaction" class="com.example.action.MyAction">
            <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>

最后,在JSP页面中使用OGNL表达式:

<s:property value="message" />

输出结果为:

Hello world!
结论

Struts 2已经被广泛应用于企业级Java Web应用程序中。其简单易懂的MVC架构、优雅的配置方式以及强大的功能特性,为开发人员提供了一个高效可靠的开发框架。