墨风如雪博客

  • 源码小店
  • 传家宝VPS
让AI使用变得如此简单
  1. 首页
  2. java
  3. 正文

java Web框架Struts的(超详细总结)

2023年 5月 3日 218点热度 0人点赞 0条评论

Struts是什么?

Struts是一个基于MVC(Model-View-Controller)架构的Web应用程序框架,它可以帮助开发人员更轻松地开发Web应用程序。它提供了一组通用的API,可以处理HTTP请求和响应,并将应用程序逻辑分离为Model、View和Controller三个部分。以下是几个常用的Struts框架的组成部分:

  • Action:处理HTTP请求的控制器组件。
  • Form:封装HTTP请求参数的JavaBean组件。
  • Validator:验证Form组件的输入数据。
  • Interceptor:处理Action组件的前后置逻辑。
  • Tag library:提供自定义标签库的支持。

下面是更详细的关于Struts的知识点。

Struts的架构

Struts的架构基于MVC模式,将应用程序逻辑分离为Model、View和Controller三个部分。

  • Model:代表应用程序的数据和业务逻辑。它通常由JavaBean组件组成,可以访问数据库或其他数据源。
  • View:代表应用程序的用户界面。它通常由JSP或其他模板引擎组成,可以显示Model中的数据。
  • Controller:代表应用程序的处理逻辑。它通常由Action组件组成,可以接收HTTP请求并调用Model组件来处理业务逻辑,然后将结果传递给View组件进行显示。

Struts的配置文件

在Struts中,开发人员需要配置一些文件来指定应用程序的行为和组件。以下是常用的Struts配置文件:

  • struts.xml:主配置文件,用于指定全局配置和Action组件的映射关系。
  • struts-default.xml:默认配置文件,用于指定Struts框架的默认行为。
  • validation.xml:验证配置文件,用于指定Form组件的验证规则。
  • tiles.xml:布局配置文件,用于指定应用程序的页面布局。

Struts的Action组件

在Struts中,Action组件是处理HTTP请求的控制器组件。它通常由一个Java类实现,其中包括处理请求的方法和返回结果的逻辑。以下是一个简单的Action组件的示例。

public class LoginAction extends ActionSupport {

    private String username;

    private String password;

    public String execute() throws Exception {
        if (username.equals("admin") && password.equals("admin")) {
            return SUCCESS;
        } else {
            addActionError(getText("error.login"));
            return ERROR;
        }
    }

    // getters and setters
}

上面的代码定义了一个名为“LoginAction”的Action组件。execute()方法是处理HTTP请求的方法,它首先检查用户名和密码是否正确,如果正确则返回SUCCESS,否则返回ERROR。addActionError()方法用于向ActionContext中添加错误消息,以便在用户界面中显示。

Struts的Form组件

在Struts中,Form组件是封装HTTP请求参数的JavaBean组件。它通常由一个Java类实现,其中包括接收请求参数的属性和验证输入数据的方法。以下是一个简单的Form组件的示例。

public class LoginForm extends ActionForm {

    private String username;

    private String password;

    public void reset(ActionMapping mapping, HttpServletRequest request) {
        username = "";
        password = "";
    }

    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();
        if (username == null || username.length() == 0) {
            errors.add("username", new ActionMessage("error.username.required"));
        }
        if (password == null || password.length() == 0) {
            errors.add("password", new ActionMessage("error.password.required"));
        }
        return errors;
    }

    // getters and setters
}

上面的代码定义了一个名为“LoginForm”的Form组件。reset()方法是重置Form组件属性的方法。validate()方法是验证Form组件输入数据的方法,它使用ActionErrors对象来封装错误消息。

Struts的Validator组件

在Struts中,Validator组件是验证Form组件输入数据的组件。它通常由一个配置文件实现,其中包括验证规则和错误消息。以下是一个简单的Validator配置文件的示例。

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
    <field name="username">
        <field-validator type="requiredstring">
            <message key="error.username.required"/>
        </field-validator>
    </field>
    <field name="password">
        <field-validator type="requiredstring">
            <message key="error.password.required"/>
        </field-validator>
    </field>
</validators>

上面的代码定义了一个名为“validators”的Validator配置文件。它包括两个验证规则,分别检查用户名和密码是否为空。如果验证失败,它会使用相应的错误消息来通知用户。

总结

Struts是一个基于MVC架构的Web应用程序框架,它可以帮助开发人员更轻松地开发Web应用程序。它提供了一组通用的API,可以处理HTTP请求和响应,并将应用程序逻辑分离为Model、View和Controller三个部分。在Struts中,开发人员需要配置一些文件来指定应用程序的行为和组件。其中,主配置文件是struts.xml,用于指定全局配置和Action组件的映射关系。在Action组件中,开发人员可以处理HTTP请求并返回结果。在Form组件中,开发人员可以封装HTTP请求参数并验证输入数据。Validator组件可以帮助开发人员验证Form组件输入数据。Struts是一个非常流行的Java Web应用程序框架,被广泛应用于企业级Web应用程序的开发。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: java Web Struts 框架
最后更新:2023年 5月 3日

墨风如雪

一个热爱生活,热爱分享的程序员

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

墨风如雪

一个热爱生活,热爱分享的程序员

最新 热点 随机
最新 热点 随机
腾讯混元MT-7B:打破参数迷思,重塑机器翻译版图 瑞士AI宣言:Apertus如何定义开放大模型 月之暗面Kimi K2-0905:代码与创意的新篇章? 谷歌“蕉”傲登场!AI生图告别“走钟”时代 2025,AI世界模型新篇章:腾讯混元Voyager展望 单GPU秒产一分钟!MAI-Voice-1,微软语音AI的“核爆”时刻?
别再卷万亿参数了,这个4B模型正把AI工作站塞进你的手机全球最佳开放模型!OpenAI开源GPT-OSS,AI界迎来巨变!声音即影像:昆仑万维SkyReels-A3如何叩响内容创作的革命前夜9B参数硬撼72B,GLM-4.1V凭什么搅动AI江湖?2B参数掀翻巨头牌桌:昆仑万维UniPic 2.0的“四两拨千斤”天工V2发布:AI终于撕掉了“纯文本”的标签
硬核拆解DeepSeek V3.1:当6850亿参数学会“分身术” 炸裂!微软这门免费AI Agent新手课,GitHub近2万星,简直是宝藏! 开拍!谷歌 Veo 2 正式登陆 Gemini API - 你的视频工作流,准备好被颠覆了吗? MySQL 事务隔离级别详解:读未提交、读提交、可重复读和串行化 全球最佳开放模型!OpenAI开源GPT-OSS,AI界迎来巨变! 视频魔法来了!AI能实时“变脸”直播,连游戏画面也能瞬间换装?
标签聚合
AI 设计模式 教程 deepseek spring java 算法 大模型

COPYRIGHT © 2023 墨风如雪博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang