我是靠谱客的博主 故意钢笔,最近开发中收集的这篇文章主要介绍SSH三大框架之struts2,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

struts2简介:

struts2是热门的MVC框架,三大框架(SSH)之一。它并非是struts1的升级版,它更像是WebWork的进化版。使用struts2之前必需要的步骤:

1>、下载struts2:从struts2的官网上下载struts2文件,它其实是个struts2的项目示例,我们通过它可以了解它的文件结构,并利用它提供的jar包,struts.xml和web.xml配置文件。

2>、给项目导入jar包:在Eclipse中新建web项目,把人家文件里的jar复制到项目的lib目录下

3>、配置struts.xml文件:放在项目src根目录下,里面的配置下面精讲。查看精讲

4>、配置web.xml文件:把人家的web.xml文件里的<filter>和<filter-mapping>拷贝到自己的里。

————————————————————————————————————————————————

一、Struts2要点总结:

























二、Struts2拦截器:

点击打开链接

在Struts2中怎么用拦截器:

1.新建一个包,里面专门放各种拦截器的类。每个类就是一个拦截器,这个类得实现Interceptor接口。

它里面自带了三个方法,

init(),indestroy(),iterceptor(ActionInvocation invocation)。最后一个方法里定义了拦截器的方法,确定你要怎么样拦截Action。拦截完后,如果后面还有拦截器,则把程序交给下一个拦截器。

2.写好拦截器的方法之后,得让程序知道啊,所以得在struts.xml文件中配置拦截器。申明拦截器,并决定在执行Action前调用相应的拦截器。

三、Struts2动态方法调用:这个博客总结得很好

试想这样一种场景:

在一个登录框底下,有“登录”和“注册”两个按钮。因为这两个动作都是操作username和password这两个数据,所以习惯上把两个动作的操作都放在一个Action类里(UserAction),在该类里分别定义login(User user)和register(User user)俩方法。

但是,问题是,我们该在struts.xml的配置文件里怎么写。此时通常便有几种方法:
1.在struts.xml的<action>标签里指定method。<action name="UserAction " class=" " method="login(user)">。也就是说这种<action>配置是以方法为单位的,那我们便要写两组action标签,这样会产生太多的action。

2.在访问链接后面注明方法。<form action="..UserAction!login(user)">或者<a href=..UserAction!login(user)></a>

这种方法使用之前必须得先在常量配置里开启动态调用的开关。

<constant name="struts.enable.DynamicMethodInvocation" value="true" /> 

3.使用通配符:

这种方法是由第一种方法演变而来,因为当Action类里有很多方法时,方法1则需要我们配置很多个action,这样很麻烦,所以诞生了使用通配符的方法,它的原则是命名约定高于配置。

看个例子:

<action name="User*" class="com.cqxs.action.UserAction" method="{1}">
<result>/{1}success.jsp</result>
</action>
但当我们除了User*类之外还有好多其他Action类时该怎么办。

<action name="*_*" class="com.cqxs.action.{1}Action" method="{2}">
<result>/{1}_{2}_success.jsp</result>
</action>

4.Struts2异常处理机制:

struts2的异常处理方式是在struts.xml文件中配置实现的,这就降低了代码和异常处理的耦合性,使代码更清晰明朗,更易维护。

 这篇博客总结得很好

5.Struts2输入校验:

方法A:手动写校验的方法(服务器端的校验)

因为Action类继承了ActionSupport,我们可以重写validate()方法,在这个方法里写校验的方法。把错误通过addFieldError("错误的名字")保存下来

注意,此时validate()校验的是这个类里的所有方法的动作。

若我们只想校验其中某个方法应该重写validateXxx(),则它只会校验xxx()方法。

我们写了输入校验的方法逻辑后,当然得在页面给用户反馈校验的信息啊。在struts标签添加<s:fielderror/>,就会显示校验信息。

方法B:配置Struts2的内置校验器

比如我们有个UserAction类,它继承了ActionSupport,并且里面有login()和regiser()两个方法。那我们若要对登录和注册的输入内容进行校验,则要在和UserAction同一级目录下新建一个UserAction-validation.xml。在这个文件里我们要配置Struts2内置校验器。

分为:以字段配置和非字段配置。


对于输入校验,分为客户端校验和服务器端校验。对于一般的校验,我们选择运用JS等技术在客户端校验,因为这样不通过服务器,速度快且轻便。但是若有些复杂的校验或者有安全担忧的,我们还是在服务器端校验比较好,因为客户端数据不太安全。







最后

以上就是故意钢笔为你收集整理的SSH三大框架之struts2的全部内容,希望文章能够帮你解决SSH三大框架之struts2所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部