现在的位置: 首页 > 综合 > 正文

struts2入门学习

2013年08月07日 ⁄ 综合 ⁄ 共 2687字 ⁄ 字号 评论关闭

一 下载struts环境,解压后打开看到app,docs,lib,src

app:struts2-blank是空的struts配置环境可以直接导入使用

src:struts源代码

二搭建环境,最方便的做法就是直接导入struts2-blank,或者

1.先导入jar包

必选

上传文件

       commons-fileupload-1.2.1.jar

       commons-io-1.3.2.jar

    模板语言

       freemarker-2.3.16.jar

    分析、编辑和创建Java字节码的类库

       javassist-3.7.ga.jar

     核心库

       ognl-3.0.jar

       xwork-core-2.2.1.1.jar(webwork的core)

       struts2-core-2.2.1.1.jar

可选

    使用Struts sx标签

       struts2-dojo-plugin-2.1.8.jar

    数据校验

       commons-validator-1.3.1.jar

     与Spring整合

struts2-spring-plugin-2.2.1.1.jar

2.配置web.xml配置filter(和struts1配置actionServlet不同,struts2是基于filter的)

	<filter>
		<filter-name>struts2_00</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2_00</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

3拷贝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>

</struts>

4.启动项目正常启动则ok

三 小例子

第一种方式

1编写action(与struts1不同,这里是多例。在编写struts1的Action的时候务必要小心线程安全问题 , 而struts2中该问题不复存在)

public class HelloWorldAction {

	public String helloWorld2(){
		
		return "success";
	}
}

2在struts.xml中配置

	<package name="" namespace = "/" extends="struts-default">
	<!-- 服务器启动时就会加载该配置文件 -->
		<action name="helloWorld" class="com.pk.web.action.HelloWorldAction" method="helloWorld">
			<result name="success" type="dispatcher">/index.jsp</result>
		</action>

第二种方式

action实现Action(下面是他的代码)起到代码规范

public interface Action {
    public static final String SUCESS= "success";
    public static final String NONE = "none";
    public static final String ERROR = "error";
    public static final String INPUT = "input";
    public static final String LOGIN = "login";
    public String execute() throws Exception;

}

其中INPUT表示数据格式错误

LOGIN:表示验证登陆

第三种方式

action继承ActionSupport

ActionSupport类实现了Action,Validateable,ValidationAware, TextProvider, LocaleProvider, Serializable接口,同时提供了国际化和校验的方法,这样可以大大简化Action的编写,在工作中,通常采用这种方式完成Action的定义。

四 请求流程解释

1.首先启动服务器,启动后查看console是否报错。

首先加载web.xml,其中加载filter等待拦截请求

2发送请求

访问方式一 action = "register!register.action"  register指的是action的名字,“!”后跟方法名字。 表示调用action名为register所表示类的register方法

访问方式二 action = "register"若不指定就会调用method指定的方法,默认为execute。表示执行这个action调用method指定方法

3.过滤器拦截请求路径(namespace+actionname+struts.action.extension)其中会找struts.action.extension

找的顺序如下:

1.struts2-core-2.2.1.1.jar/struts-default.xml(最最低)

2.struts2-core-2.2.1.1.jar/org/apache/struts2/default.properties(最低)

3.%class_path%/struts.xml(低)(推荐)

4.%class_path%/struts.properties

5.web.xml(高)<init-parm/>

找到对应的action后就会执行extend=“”中的代码一般为struts-default(bean+abstract包(

返回类型、拦截器、拦截器栈、默认的拦截器和默认的Action))依次执行(若有自定义的也执行)。

4.执行action中的方法并返回String常量然后再执行extend中(若有自定义的也执行)一系列的连接器由返回类型中的一个类进行跳转

五认识struts的配置文件

暂停吃饭去

抱歉!评论已关闭.