1、在tomcat中的配置server.xml:加入
<context path="/struts2" docBase="E:/Workspace/struts2/WebRoot" reloadable="true" />
作用:这样配置就不用将工程发布tomcat中了,只要发布到tomcat中,没有此配置也是可以的
在Tomcat里可以配置一下路径,不用把它发布到Tomcat里。在Tomcat的根目录下找到server.xml里的<Host>标签里加上一个<Context path="/struts2" docBase="E:/workspace/struts2/WebRoot" reloadable="true" />标签。基中path请求的虚拟路径、docBase当前的应用程序目录、reloadable当为true时表示当开发者去修改任意一个class文件或配置文件时Tomcat自动重起方便开发,当运行的时候为false提高Tomcat运行的效率。然后配置好Tomcat,其中Launch选择run model运行模式。
2、加入五个必须的struts2的jar包
基本jar包commons-logging-1.0.4.jar:日志包、freemarker-2.3.13.jar、ognl-2.6.11.jar、struts2-core-2.1.6.jar:核心包、xwork-2.1.2.jar:webWork的核心包,struts2也依赖于它、commons-fileupload-1.2.1.jar
3、修改工程下的web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
struts2不是servlet而是一个过滤器
4、在src目录下创建struts2的配置文件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="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
注:package里的extends与类的继承相似,struts-default是struts2里已经存在的包 action里的name与页面里表单里的action的值,这个值除掉.action;class与struts1里的type属性一样。 result转到的页面,里面的name默认值为sucess;如果name为input表示出现错误时返回到输入页面。 action类会自动力执行execute的方法
拦截器是struts2的核心部分
代码执行流程:
表单提交数据->struts.xml->标签<action>指定的逻辑处理类->跳转到<result>指定的页面
5、struts2里action不须要继承那个类开实现它是一个简单的pojo,不须要依赖struts2的任何一个类文件。
6、struts2里替除了一些不须要的标签,标签文件的描述符是核心包里面的META-INF里。struts2是用maven来构建,它比ant还要强大。struts2的form标签action值默认以action结尾,它还集成了错误验证的机制。
7、struts2提交一个父类:ActionSupport。webwork本身是xwork与webwork两个工程的合并,struts2引入了xwork。ActionSupport对通用的行为进行了实现,实际是对一些接口的实现。也可以自己写。
8、ActionSupport:
如果子类想实现验证要实现ActionSupport的validate方法。当验证失败时用ActionSupport的addFieldError(String fieldName,String errorMessage)方法添加错误信息。fieldName表单里控件的名字,errorMessage错误信息,出现错误时返回到input页面。