struts框架必备的三个要素:
1.xml文件配置:
xml文件配置主要为一个过滤器的配置:StrutsPrepareAndExecuteFilter;
该过滤器为struts默认为我们实现好了的;所以在xml文件中直接配置,不用去自己建过滤器filter;
配置如下:
<?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_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>web_Struts2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
在此环境下得struts才能应用;
2.struts核心文件配置:
struts.xml动态文件配置如下:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<!-- package name="student"和java的包一样,命名唯一,将要执行的类同一进行管理 ,可以有多个包 -->
<!-- namespace="/"代表命名空间为根空间;命名空间就是我们在发起一个请求的时候输入的地址
比如:http://localhost:8080/web_Struts2/user.action;如果是"/"为根空间;
如果为http://localhost:8080/web_Struts2/随意一个名字/user.action;
那么namespace="随意一个名字"
-->
<!-- ction name="user" user和servlet类似有一个名称,用于调用时候输入地址;后缀默认为.action!! 且后缀名任意更改在struts.properties文档中可任意更改名字 -->
<!-- class="com.ygr.struts.action.UserAction"所在的包地址,和在xml文档中配置servlet一样 -->
<!-- method="add" 这里如果不写,默认执行的方法就是execute();如果写了就是执行所写的方法,这里就是执行add方法 -->
<!-- result name="success" 这里和对应的java,action类调用的方法相对应-->
<package name="student" namespace="/" extends="struts-default">
<action name="user" class="com.ygr.struts.action.UserAction"
method="add">
<result name="success">/success.jsp</result>
<result name="add">/add.jsp</result>
</action>
</package>
</struts>
另外还有静态文件配置:如下:
文件类型名称为:struts.properties
#更改struts2后缀;默认一般为action 但是可以随意更改为其他后缀比如do;jspa等等
struts.action.extension=action
3. 对应实现的action类包名:com.ygr.struts.cation
对应的java类为:
package com.ygr.struts.action;
import org.apache.log4j.Logger;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private static Logger log=Logger.getLogger(UserAction.class);
@Override
public String execute() throws Exception {
/**
* 请求响应
* 执行业务处理
* 返回响应
*/
log.debug("执行execute()方法>>>>>>");
return "success";
}
public String add(){
log.debug("执行add()方法 >>>>>>");
return "add";
}
}
注:要想实现struts2框架的你的工程李必须导入的几个包为:
少一个都会报错。