引言
Struts2是Apache软件基金会的一个开源MVC(模型-视图-控制器)框架,用于开发Java Web应用程序。它可以帮助开发者简化开发流程,提高代码的可维护性和扩展性。本文将带领新手入门Struts2的配置,并通过实战解析来加深理解。
一、Struts2基础配置
1. 创建Web项目
首先,你需要创建一个Maven或Gradle项目,并在其中添加Struts2依赖。
<!-- Maven项目依赖 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.14</version>
</dependency>
2. 配置web.xml
在项目的web.xml文件中,需要配置Struts2的过滤器,以便拦截请求并处理。
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3. 创建struts.xml
在项目的src目录下创建struts.xml文件,配置Struts2的核心内容。
<struts>
<package name="default" extends="struts-default">
<action name="hello" class="com.example.HelloAction">
<result>/success.jsp</result>
</action>
</package>
</struts>
4. 创建Action类
在com.example包下创建HelloAction类,实现Action接口。
package com.example;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
public String execute() {
return SUCCESS;
}
}
5. 创建JSP页面
在Web应用的WEB-INF目录下创建success.jsp页面。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
二、Struts2开发模式实战解析
1. 动作方法与结果
在上面的示例中,HelloAction类中只有一个execute方法,该方法返回SUCCESS结果。在struts.xml文件中,通过<result>标签配置了成功后的页面跳转。
2. 参数传递
在Action类中,可以通过属性注解的方式接收请求参数。
package com.example;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() {
return SUCCESS;
}
}
在struts.xml中配置参数:
<action name="hello" class="com.example.HelloAction">
<result>/success.jsp</result>
<param name="name">${name}</param>
</action>
在JSP页面中,可以使用EL表达式获取参数值:
<h1>Hello, ${name}!</h1>
3. 类型转换
Struts2支持自动类型转换,可以将请求参数转换为Action类中声明的属性类型。
private int age;
public int getAge() {
return age;
}
public void setAge(String age) {
this.age = Integer.parseInt(age);
}
4. 验证
Struts2提供了内置的验证框架,可以在Action类中使用注解或配置文件进行验证。
package com.example;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.validation.annotation.Validations;
import org.apache.struts2.interceptor.validation.annotations Required;
import org.apache.struts2.interceptor.validation.annotations Range;
@Validations(requiredFields = { @Required(field = "name") })
public class HelloAction extends ActionSupport {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() {
return SUCCESS;
}
}
5. 国际化
Struts2支持国际化,可以将资源文件放置在src目录下,并通过EL表达式获取国际化文本。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>${i18n.hello}</title>
</head>
<body>
<h1>${i18n.name}, ${name}!</h1>
</body>
</html>
在src目录下创建messages_zh_CN.properties文件:
hello=你好
name=名字
三、总结
本文从新手入门的角度,介绍了Struts2的配置和开发模式实战解析。通过以上内容,相信你已经对Struts2有了初步的了解。在实际开发中,Struts2还有许多高级特性和功能等待你去探索和实践。祝你在Struts2的学习道路上越走越远!
