Struts2框架学习笔记



1.我觉得要学习Struts2框架,首先我们要知道它在程序中到底是做什么的,执行什么功能?

一开始我也不是很了解,熟悉了MVC模式,知道每一层到底是做什么的,这个我相信就不难理解了。Struts2框架它所要做的内容其实就是Servlet类要做的功能,就是Control层的Action类要实现的功能,所以我们在用的时候,只要想着把Action层的东西替换成Struts2框架就行了。

2.到底Struts2框架是怎么执行等同于Servlet类的功能的呢?

深入的了解后,不难发现其实Structs2框架是有很多个拦截器组成的。除了Struts框架的jar包,我们还必须要有struts.xml文件跟web.xml文件的概念。

3.下面就来说说怎么去使用Struts框架

首先我们必须要明白的一点就是任何的MVC框架都要跟web应用程序整合,所以我们就必须要借助web.xml文件,所以我们第一步就是要修改web.xml,把Struts框架部署上去,就是要定义一个Struts2的过滤器,如下:

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

这样我们就把Struts框架给部署上了,如果要跟Spring框架整合的,还要部署监听器,保证服务器启动的时候,Struts框架也跟着启动。

第二步:

不可置否的就是部署struts.xml文件了,这个也很简单

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	
</struts>
我们可以在Struts框架jar包里面拷贝一个struts.xml文件,在这里我们要定义的内容要那些呢?还是看代码:

<!-- 首先要定义一个包名,记住包的名字要唯一 ,一个包可以包含多个Action标签-->
	<package name="user" namespace="/" extends="struts-default">
	<action name="A_crud_*" class="Action类所在的路径" method="${1}" >
	<!-- name里面代表action返回的结果跟它一样的话就执行type操作 -->
	<result name="success" type="dispatcher(转发)">要转发的具体路径</result>
	<result name="error" type="redirectAction(重定向)">页面的链接地址(可以直接填写上一个actiona标签的姓名,表示再次执行action操作)</result>
	</action>
	<!-- 当返回的值为error时全局的结果 -->>
	<global-results>
	<result name="error" type="redirectAction(重定向)"></result>
	</global-results>
	</package>
那么我们怎么访问呢?

首先路径是:当前路径/A_crud_方法名.action

就这样我们定义好了Struts的基本文件配置

4.下面就需要定义我们的Action类了

首先我们要明白Action类怎么接收参数的:一共有三种,分别是:

4.1使用Action类的属性来继承,必须要有该方法的getter和setter方法
<result name=""> name的类型有SUCCESS,ERROR,INPUT,LOGIN,NONE

4.2通过继承extends ActionSupport 类,实例化应用的对象,同时也要有getter和setter方法

4.3通过实现ModelDriven接口的方法,这要求我们必须要初始化序列号,所以也要继承Serializable接口(这也是常用的)所以通过代码来了解一下:

package com.zqu.student.action;

import java.io.Serializable;

import com.opensymphony.xwork2.ModelDriven;

public class UserAction implements Serializable,ModelDriven {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	//私有化对象
	private User user;
	@Override
	public Object getModel() {
		user  = new User();
		return user;
	}

}
就这样我们就可以编写我们要实现的功能了:

package com.zqu.student.action;

import java.io.Serializable;

import com.opensymphony.xwork2.ModelDriven;

public class UserAction implements Serializable,ModelDriven<Object> {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	//私有化对象
	private User user;
	@Override
	public Object getModel() {
		user  = new User();
		return user;
	}
  public String save(){
	  String msg = "success";
	  return msg;
  }
}
到这就ok了,其他的内容慢慢再积累就行。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值