Struts2在用户请求和模块化处理方面以及页面的展现这块,Struts2 发挥的屌炸天作用;相对于传统的 Jsp+Servlet 模式,Struts2 更适合企业级团队开发,方便系统的维护
二、helloWorld:
1)项目的结构:
HelloWorldAction.java:
package com.cy.action;
import com.opensymphony.xwork2.Action;
public class HelloWorldAction implements Action{
//进入该类会默认执行execute方法
public String execute() throws Exception {
System.out.println("执行了Action的默认方法");
return SUCCESS;
}
}
struts.xml配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 可以创建很多的package,用name来区分,name="helloWorld"没有实际意义,比如说区分前后台-->
<package name="helloWorld" extends="struts-default">
<action name="hello" class="com.cy.action.HelloWorldAction">
<!-- 默认是转发,转发到helloWorld.jsp -->
<result name="success">helloWorld.jsp</result>
</action>
</package>
</struts>
web.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Struts2Chap01</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>Struts2</filter-name>
<!-- struts2的核心控制器 -->
<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>
</web-app>
helloWorld.jsp:
<body>
struts2你好!!
</body>
2)测试结果:
浏览器中访问:http://localhost:8080/Struts2Chap01/hello
控制台打印出来执行了Action的默认方法
整个流程简单分析:struts2的核心控制器拦截浏览器地址中url请求,找到对应的action处理类
<!-- 默认是转发,转发到helloWorld.jsp -->
<action name="hello" class="com.cy.action.HelloWorldAction"> <result name="success">helloWorld.jsp</result>
</action>
然后进入HelloWorldAction类中执行execute方法
return SUCCESS,对应name="success",然后转发到helloWorld.jsp前台页面