本文使用最新的Struts 2.3.24.1版,演示了怎样用Apache Struts 2构建最基本的Web应用。
项目的基本需求:
1)Maven 3.3.3
2)Eclipse Mars.1 Release (4.5.1)
3)Struts 2.3.24.1
Group Id:com.ch.common
Artifact Id:Struts2Example
Packaging:war
鼠标右键点击项目,选择”Java EE Tools”->”enerate Deployment Descriptor Stub”,会自动产生WEB-INF子目录和web.xml配置文件。
项目pom.xml内容如下:
4.0.0
com.ch.common
Struts2Example
0.0.1-SNAPSHOT
war
org.apache.struts
struts2-core
2.3.24.1
junit
junit
4.12
test
Struts2Example
maven-compiler-plugin
3.0
1.8
包括输入用户名和密码的输入框、提交按钮等。
login.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
Struts 2 Hello World Example
登录成功后,进入欢迎页面。
welcome_user.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
Struts 2 Hello World Example
Hello
Struts 2的Action类,负责所有的业务逻辑。
WelcomeUserAction.java
package com.ch.user.action;
public class WelcomeUserAction {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
// Struts业务逻辑放这里
public String execute(){
return "SUCCESS";
}
}
在Struts 2中,Action类无需实现任何借口或继承任何类,唯一的要求就是它必须创建一个execute()方法来放置所有的业务逻辑,并且此方法必须返回String类型的字符串,告知用户它要重定向到哪里。
注意:有些开发者实现了com.opensymphony.xwork2.Action类,这取决于你的需求和应用场景,这个类提供了常用的常量值。
Struts 2的配置文件名必须是struts.xml。
login.jsp
welcome_user.jsp
Struts配置文件声明了一个包(Package)和封装的Action类,Action类是自解释的,下面对配置中的一些内容做一说明:
1)package name=”user”
仅仅定义了一个包名,无需关心它。
2)namespace=”/pages”
这用于匹配URL为“/”的访问路径。
3)extends=”struts-default”
意思是此包继承自struts-default包组件和拦截器,而这些是在struts-default.xml文件中声明的,这个配置文件位于struts2-core.jar文件中。
Web应用描述符web.xml文件的配置如下:
Struts 2 Web Application
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
pages/login.jsp
对于Struts 2 Web项目,可以通“.action”后缀直接访问Action。
浏览器访问:http://localhost:8080/Struts2Example/pages/Login.action
或者是访问:http://localhost:8080/Struts2Example/pages/login.jsp
任意输入用户名和密码,
可以看到,访问正常!