struts2框架 (自动保存的)
Struts2的应用流程
一》:创建jsp页面。
二》:编写Action。
1. 基本知识:Action对象
public interface Action{
public static final String SUCCESS=”success”; //Action执行成功的返回值
public static final String NONE=”none”; //Action执行成功的返回值,
但不用返回到成功页面
public static final String ERROR=”error”; //Action执行失败的返回值
public static final String INPUT=”input”; //需要返回到某个输入信息
页面
public static final String LOGIN=”login”; //需要用户登陆
public String execute() throws Exception;//执行方法
}
Action Support类实现了Action接口。所以我们在编写Action时需要继承Action Support方法。
例如:Public class LoginAction extends Action Support{ }
Action 中默认的是execute()方法,但Struts 2还可以执行其它方法,但是这些方
法必须没有参数,并且返回类型都是String,但可以有throws关键字,当然这些是一般方法。
我们可以用两种方式执行这些方法。
a. 通过URL执行。使用action!method.action的形式访问。(action是struts.xml
配置的)
b. 在struts.xml中用method实行动态action配置。
c. 在Action用@注解通过零配置实现。
三》通过配置文件配置Struts2以便调用Action
1. 在web.xml中配置struts.xml让所写的Action与struts2.关联起来。
<filter>
<filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecut
eFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern>
</filter-mapping>
这个配置是和servlet中的格式一样的。
2. Struts2 的核心配置文件:struts.xml
a. 配置Package和名称空间:
<packagename="first"extends="struts-default"
namespace=”bookmanager”><!--定义一个package -->
</package>
配置package目的只有一个,为了分区管理我们配置的<action …></action> Name:package的属性。给这个package起一个名称而已,相当于id属性。Name=login Extends: 必须有,且必须直接或间接继承struts-default。 namespace:给我们配置的Action起一个空间名称。Namespce=”/userLogin”这样我们
在访问这个Action时需要在Action前面加上这个空间名称。
例如<form action=”userLogin/login.action method=”post”>
b. 配置action
<actionname="login"class="userLogin" >
<resultname="success">/welcome.jsp</result> <resultname="login">/index.jsp</result> </action>
<action>的配置是放在<package>包中的。
Name: 给们配置的action起一个名字,也相当一个id属性。
Class: 用哪一个action来处理,这儿就用配置那个Action的url。
例如:class=”com.login.LoginAction”
但是如果此action是用Spring来管理,那么这儿的class就要用<bean>中的name属性值。
<beanid="userLogin"class="com.login.LoginAction"
scope="prototype"
</bean>
<action name=”login” class=”userLogin”>
c. 配置result
<result></result>是用来配置当Action中的返回值为name时,我们将它转到
那个处理页面。
在struts.xml中还可以配置Exception Intercept 同时一些struts.properties的
配置也可以在此进行。例如struts2的属性在struts.xml中就可以用<constant>配置。
当然,我们也可以用Myclipse中自动搭建bliud path.点项目名称,点右键,
myEclipse点要加载的包就行。同时这样会自动生成,struts.xml 也会在web.xml中自动进行配置。
Struts2之所以使用能管理我们Action方法,而且我们也用它来管理Action,是
因为它有两个很重要又很强大的机制。那就是我们常说的数据验证机制与拦截机制。
三》Struts2的拦截器
a. 在Action对象中写一个用于验证的业务方法。
我们通常将验证方法单独放在某一个方法中,这样所有处理请求的方法体
也单独处于一个业务方法中,其命名规范必须是:validate与请求处理方法名
称(首字母必须大写)的组合。如:validateExecute() 。
b. 直接在validate()方法中重写验证的方法体。
com.opensymphony.xwork2.Validateable接口中定义了validate()方法,
ActionSupport类对此接口进行了实现。所以在继承了ActionSupport的Action
中都可以直接重写validate()方法。且如果在此类中有多个其他Action方法,
那么默认在执行每一个请求方法的过程中,都会经过validate()方法的验证处理。
要想那个方法不通过此验证器,就需要为此Action配置
DefaultWorkflowInterceptor拦截器来指定,排除需要验证的方法。因为validate
验证处理是由Struts2 API 中的com.opensymphony.xwork2.interceptor.Default.
WorkflowInterceptor拦截器进行调用的,而DefaultWorkflowInterceptor拦截器
是MethodFilterInterceptor拦截器的子类。DefaultWorkflowInterceptor拦截器
定义在在defaultStack拦截器栈中。而通常情况下,Action配置都需要继承
Struts-default,所以在一个Action 对象中要排除需要验证的方法,可使用以
下代码:
<action name=”loginAction” class=”com.lyq.action.LoginAction>
<interceptor-ref name=”defaultStack”>
<param name=”workflow.excludeMethods”>CheckUser</param>
<param name=”workflow.includeMethods”>execute</param>
<interceptor-ref>
<result name=”input”>/login.jsp</result>
<result>/success.jsp</result>
</action>
workflow.excludeMethods:用来指定排除验证的方法。
workflow.includeMethods:用来指定需要验证的方法。
c. Struts2验证框架:
对于经常使用的验证规则,Struts2已经编写好了验证机制提供给我们,
那就是Struts2验证框架,Struts2验证框架主要是基于拦截器实现的,我们只需要编写一个类似配置文件的验证文件就可。所以此验证文件的命名必须为以下两种方式:
1.ActionName-validation.xml: ActionName:为Action对象的名称。且对象中所
有的方法都会经过此验证文件验证。< …… 此处隐藏:3280字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




