📅  最后修改于: 2023-12-03 15:35:10.432000             🧑  作者: Mango
Struts 2是一个基于MVC架构的Java Web应用程序开发框架,旨在帮助开发人员更快更简单地开发可扩展和可维护的Web应用程序。本教程将深入介绍如何使用Struts 2开发Web应用程序,从配置和基本概念开始,然后逐步介绍更高级的主题。
本教程将包含以下主题:
Struts 2框架是一个基于MVC模式的框架,其中M代表模型,V代表视图,C代表控制器。模型表示数据和业务规则,视图表示展示数据的用户界面,控制器处理用户请求并更新模型数据和视图。Struts 2将MVC模式转换为以下组件:
Struts 2应用程序的核心配置文件是struts.xml
,它定义了应用程序中Action、拦截器、结果等的配置信息。Struts 2还支持动态配置,可以通过在运行时修改配置文件来实现。配置文件的格式通常是XML格式,但也可以使用JSON或Java代码。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Struts//XSD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="hello" extends="struts-default">
<action name="welcome" class="com.example.WelcomeAction">
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
Struts 2中的拦截器是一个强大的功能,它允许我们在Struts 2执行Action的过程中添加自定义逻辑,例如日志记录、数据验证等。Struts 2框架中有许多内置的拦截器。
<interceptors>
<interceptor name="myLogger" class="com.example.MyLoggerInterceptor" />
<interceptor-stack name="customStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="myLogger" />
</interceptor-stack>
</interceptors>
Struts 2支持在运行时动态修改配置文件,例如,可以添加、修改或删除Action、拦截器或结果等。Struts 2还提供了一个管理员页面,允许我们修改配置而无需重新启动应用程序。
ConfigurationManager configurationManager = new ConfigurationManager();
configurationManager.addContainerProvider(new StrutsXmlConfigurationProvider("struts.xml", true));
configurationManager.reload();
在Struts 2中,表单处理非常容易。Struts 2框架提供了许多标签库,允许我们轻松创建表单、文本框、下拉列表等界面元素。同时,Struts 2还提供了表单验证和错误处理。
<s:form action="login.action">
<s:textfield name="username" label="Username" />
<s:password name="password" label="Password" />
<s:submit value="Login" />
</s:form>
在Struts 2中,数据验证非常容易。我们可以轻松定义数据验证规则,例如必填、范围、正则表达式等。Struts 2还提供了错误消息处理和客户端和服务器端验证。
<validators>
<field name="username">
<field-validator type="requiredstring">
<message key="errors.required" />
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">0</param>
<param name="max">150</param>
<message key="errors.range" />
</field-validator>
</field>
</validators>
Struts 2允许我们根据用户的语言和位置提供多语言支持。使用Struts 2国际化,我们可以轻松创建翻译资源包,并在应用程序中使用它们。
welcome.message=欢迎
login.username=用户名
login.password=密码
Struts 2提供了一个易于使用的文件上传功能,它允许我们将文件上传到服务器。使用Struts 2文件上传,我们可以上传文件,并在Action中访问它们。
<s:form action="upload.action" enctype="multipart/form-data">
<s:file name="upload" label="Select a file" />
<s:submit value="Upload" />
</s:form>
Struts 2标签库为我们提供了许多常用的Web表单元素,例如文本框、复选框、下拉列表等。使用Struts 2标签库,我们可以轻松地创建自定义的用户界面。
<s:textfield name="username" label="Username" />
<s:checkbox name="rememberMe" label="Remember me" />
<s:select name="country" label="Country" list="#{'US':'United States','UK':'United Kingdom'}" />
Struts 2框架与Spring框架的无缝集成允许我们访问Spring IoC容器中的服务,例如数据库连接、业务逻辑等。
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="url" value="jdbc:mysql://localhost/myDB" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
本教程为程序员介绍了Struts 2框架的基本概念、配置、拦截器、动态配置、表单处理、验证、国际化、文件上传、标签库以及与Spring集成的主题。掌握这些技能将使你能够更快地开发可扩展和可维护的Web应用程序。