您的位置:首页 > 编程语言 > Java开发

struts2基础学习总结

2016-10-23 00:27 393 查看
Struts2 搭建开发环境

1、导入jar包(apps下的示例程序中复制)

2、配置struts2

1、web.xml(apps下示例中复制)文件中配置前端控制器(核心控制器)—就是一个Filter

目的:是为了让Struts2框架可以运行,struts2是通过这个filter启动的。

2、创建struts.xml配置文件,放在src下(classes下)这个是struts2框架配置文件。

目的:是为了struts2框架流程可以执行。struts.xml是struts2的核心配置文件,主要用于配置开发人员编写 的action

Action接口中的5个静态常量,用于处理结果:

SUCCESS //数据处理成功,(成功页面)

NONE //也代表Action执行成功的返回值,页面不跳转。和return null效果一样。

ERROR //数据处理发送错误(错误页面)

INPUT // 用户输入数据有误,通常用于表单数据校验(输入页面)

LOGIN //主要权限认证(登陆页面)

通过继承ActionSupport类,可以简化struts2 的action开发

execute()方法是对应action配置文件method的默认执行方法。因为此类中实现了很多的实用借口,提供了很多默认方法,这些默认方法包括国际化信息的方法、默认的处理用户请求的方法等,这样可以大大的简化Acion的开发。
要想执行其他的方法,可以通过struts.xml中action的method属性指定自定义方法。

validatable接口定义了一个validate()方法,提供了数据校验功能。该方法在execute()方法之前执行。

Struts2中通常直接使用Action来封装HTTP请求参数,因此,Action类里还应该包含与请求参数对应的属性,并且为属性提供对应的getter和setter方法。

Action 数据校验
手动校验和数据校验框架(这里主要说校验框架)

ActionSupport类是一个工具类,它已经实现了Action接口,还实现了Validateable接口,提供了数据校验功能。在Validatable接口中定义了一个validate()方法,重写该方法,如果校验表单输入域出现错误,则将错误添加到ActionSupport类的fieldErrors域中,然后通过OGNL表达式负责输出为了校验信息。


通过配置文件,使用校验框架对数据进行校验

配置文件必须和action类在同一个包下

校验配置文件命名规则

1、Action类名-validation.xml ——全局,会对action下所有方法进行校验

2、Action类名-action配置名称-validation.xml—— 局部,灵活(Action对象中包含多个请求处理方法,而有没必要对每个方法进行校验,只需要对Action中的特定方法进行处理,就可以使用该命名方式)。

配置文件编写示例:
//约束:xwork-core-2.3.7.jar 中 xwork-validator-1.0.3.dtd下复制


<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>

<field name="属性名">//要校验的属性
<field-validator type="校验器">//指定使用校验器
<param name="">值</param>//用于指定校验器的参数,例:用户名最少6位,最大20位
<message>错误信息</message>
</field-validator>
...N ...
<field-validator type="校验器">//指定使用校验器
<param name="">值</param>//用于指定校验器的参数,例:用户名最少6位,最大20位
<message>错误信息</message>
</field-validator>
<field>
</validators>


**注意问题**
实现表单验证,一定不要忘记在struts.xml文件中配置input视图。因为表单校验失败默认返回的字符串是input,请求将被转发到input视图,如果没有就会报错。

**校验器介绍:**
* required (必填校验器,要求被校验的属性值不能为null)
* requiredstring (必填字符串校验器,要求被校验的属性值不能为null,并且长度大于0,默认情况下会对字符串去前后空格)
* stringlength (字符串长度校验器,要求被校验的属性值必须在指定的范围内,否则校验失败,minLength参数指定最小长度,maxLength参数指定最大长度,trim参数指定校验field之前是否去除字符串前后的空格)
* regex (正则表达式校验器,检查被校验的属性值是否匹配一个正则表达式,expression参数指定正则表达式,caseSensitive参数指定进行正则表达式匹配时,是否区分大小写,默认值为true)
* int(整数校验器,要求field的整数值必须在指定范围内,min指定最小值,max指定最大值)
* double(双精度浮点数校验器,要求field的双精度浮点数必须在指定范围内,min指定最小值,max指定最大值)
* fieldexpression (字段OGNL表达式校验器,要求field满足一个ognl表达式,expression参数指定ognl表达式,该逻辑表达式基于ValueStack进行求值,返回true时校验通过,否则不通过)
* email(邮件地址校验器,要求如果被校验的属性值非空,则必须是合法的邮件地址)
* url(网址校验器,要求如果被校验的属性值非空,则必须是合法的url地址)
* date(日期校验器,要求field的日期值必须在指定范围内,min指定最小值,max指定最大值)


默认的action

处理其它action处理不了的路径。

<default-action-ref name="Action名称">


当用户请求的URL在容器中找不到对应的Action时,系统将使用默认Action来处理用户请求。

Action配置的各项默认值

1.如果没有为action指定class,默认是ActionSupport

2.如果没有为action指定method,默认执行action中execute()方法。

3.如果没有为action指定result,默认值为success。

标签

name,与action中的method返回值匹配,进行跳转

type属性,用于指定跳转方式,在struts-default.xml文件中定义了type可以取的值

1. dispatcher:代表请求转发,也是默认值。从action转发到页面。

2. chain 也是请求转发,从一个action转发
9ad4
到另一个action

redirect 代表重定向, 从action跳转到页面

redirectAction 重定向,从一个action 跳转到 另一个action

stream 代表的是服务器端返回的一个流,一般用于下载。

当一个 供很多action使用,可以定义一个全局结果的result

<global-results>
<result name="">...</result>
</global-results>


struts.xml文件的分离

目的:为了阅读方便,可以让一个模块一个配置文件,在struts.xml文件中通过

导入其它的配置文件。

通过通配符来简化配置:

1.struts.xml文件中:

<action name="*_*" class="com.meng.action.{1}Action" method="{2}"> <action>


jsp页面上

<a href="${pageContext.request.contextPath}/Book_add"> book add </a><br>
<a href="${pageContext.request.contextPath}/Book_update"> book update </a><br>
<a href="${pageContext.request.contextPath}/Book_delete"> book delete </a><br>
<a href="${pageContext.request.contextPath}/Book_search"> book search </a><br>


当访问book add时,这时的路径是 Book_add ,那么对于struts.xml文件中:
第一个*就是  Book
第二个*就是  add
对于{1}Action  ---》BookAction
对于method="{2}"---》method=add


使用通配符注意事项:必须定义一个统一的命名规范。 不建议过多使用通配符,阅读不方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2.0