struts2自学笔记

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts2自学笔记

一,类型的转换

1,struts的标签放在struts的jar包下。MATE-INF - struts-tags.tld下的。定义了所有标签的机制。

2,导入标签<@ taglib prefix=”s(可自行定义)”uri=”/strusts-tags”>

当没有报错时,就说明正确了。

3,

这里当使用此标签是它地址默认为action,就不用去写action了,直接写名字就是了,不想form表单中的action要写成login.action。

文本框我们是用来表示的。

Username 是文本框的名字,客户端处理的参数值。Label是文本框的名字。

相当于我们比较熟悉的username :

密码呢,用

提交用

4,和基本的jsp页面相比,struts2标签是自动换行的。

5,action类继承ActionSupport类,实现了很多接口,验证,等很多功能都可以用了。

有validate方法(验证)等

6, 在struts2中我们可以自动验证错误,不像在struts1中我们还要在jsp页面手动的添加一个error标签才能完成。

《------------------局部类型转换-----------------》。

1,ognl是一种强大的表达式语言。

2,我们继承ognl.DefaultTypeConverter,再重写

context,Object values,Class toType)方法就能实现类型的转换了。

分别代表:Map (应用的上下文) Object(类型转换的值) Class(类型的转换,看你转换成什么类型有两种,1。从字符串到我们自定义类型的转换 2。从自定义类型到String 的转换。它觉定你的转换为什么)

3,Struts2为我们默认提供的转换标志。(com.opensymphony.xwork2 中的action接口) ActionSupport是实现了Action接口了的。所以要用直接继承ActionSupport就可以了。

SUCCESS(表示Action的操作是成功的),INPUT(验证没有成功),NONE(表示Action的操作是成功,但是不显示任何视图),LOGIN(Action没有执行成功,用户不能登录。)ERROR(表示错误)

4,property标签用于输出值栈中的对象的属性值,使用value属性来指定要输出的对象属性,如果没有指定value属性,那么默认输出栈顶对象。自动调用它的get方法

属性如下:

1. default:可选,如果需要输出的属性值为null,则显示的default属性指定的

2. escape:可选,指定是否escapeHTML代码

3. value:可选,指定需要输出的属性值。如果没指定,默认输出ValueStack栈

顶的值

4. id:可选,指定该元素的标识

5, 文件名字的定义:转换的时候,在定义文件名字是要转换的属性action,要求属性所在Action+(-conversion.properties),后面是固定的。该文件必须建在和Action是同一包下的。

其中内容包括:你要对哪个属性的进行转换,和用哪个类对它进行转换。

例子:就是对坐标的一个转换。

6,流程: input.jsp页面—>通过struts.xml找到相应的action类。 在到point的set方法时,它通过我们配置的PointAction-conversion.properties自己找到我们为他执行转换的类的方法。这时就要选择PointConventer中的两个if语句看是执行那个语句。一个是从服务器到客户端if(String.class=toType),一个是从客户端到服务器if(Point.class=toType)。

《---------------------全局的类型转换-------------------》

1, 需要类型转换配置文件(名字是xwork-conversion.properties)

2,里面的内容是: 等号左边是你要转换的对像所对应的类的全称。右边是表示我要用这个类去转换我的前面的这个类。

《--------------Struts2的校验------------》

1,主要学习了用户的注册功能对用户的年龄,密码,用户名,出生日期,注册日期。并且要求的是出身日期不能大于我们的注册日期。年龄也有要求,必须在1到150之间。2,主要的实现过程是,我们的日期的判断前后的顺序是用Calender 中的before方法进行比较的。

Calendar ca = Calendar.getInstance();

ca.setTime(this.getDate());

Date d1= ca.getTime();

Calendar c1a = Calendar.getInstance();

c1a.setTime(birthday);

Date d2= c1a.getTime();

if(d1.before(d2)){

this.addFieldError("birthday", "Birthday before date");

}

※如何让我们的错误信息在页面中显示出来呢,要用到struts2的标签。

只有这样才能让我们的错误提示信息显示出来。

※现在客户有个要求:要求我们即便是输入错误的信息,返回让我们从新输入时,我原来的信息必须保留。这时应该怎么处理呢???

解决办法:1)用er表达式即可完成。示例:

value=”${requsetScope.age}”>。

2)可以用struts2的标签库。也可以实现此功能。不用写那么多的信息,因为标签库会自动为你保存内容。例子:

这样它的功能

和上面就是一样的了。

注意:struts标签显示的错误信息只能显示fielderror里面的信息。不能显示

相关文档
最新文档