风中叶之struts2学习笔记一

Struts2

1,         struts官方网址:http://struts.apache.org/

2,         Struts

3,         Struts的概念和体系结构

4,         MVC模式的优点

5,         JSP  model1

6,         JSP model2

7,         Struts2必须使用的最小jar文件

commons-fileupload-1.2.2.jar commons-io-2.0.1.jarcommons-lang3-3.1.jar ognl-3.0.5.jar struts2-core-2.3.4.jar xwork-core-2.3.4.jar freemarker-2.3.19.jar 

javassist-3.11.0.GA.jar ;(该jar包不在lib中,可以到例子中找到)

8,         struts是通过过滤器(Filter)与应用关联的,在web.xml文件中加入

9,         struts还必须配置自己的文件,struts.xml,一定要在src目录下建立,其中开始的dtd可以到例子中拷贝

10,    登录页面和结果显示页面都是jsp页面,比较简单,就不在赘述

11,    关联源代码方法:项目名右键àBuild PathàConfigure Builder PathàLibrariesà点开struts2-core-2.3.4.jaràSource attachment (None)àEditàExternal Folderà”E:/WEB-jar/struts-2.3.4/src/core/src/main/java”

12,    根据开源项目源代码生成javadoc帮助文档
1)新建一个普通的java项目,如
struts_doc
2
)将目录\struts-2.3.4\src\core\src\main\java里面内容拷贝到新建项目的src目录下

3)导入需要的jar文件,选择Add External Jars,除了struts2-core-2.3.4.jar都加入
4)在Tomcatservlet-api.jarjsp-api.jar同样加入进来
5)菜单栏ProjectàGenerate javadoc

13,整个执行流程:表单输入完数据提交给login.action,流程转到struts.xml文件中,它里面会有多个action,逐一去匹配;接着流程转到匹配到的login对应的classLoginAction,实例化LoginAction对象,将页面提交过来的信息调用set方法逐个赋值给成员变量,接着自动调用execute方法,这个方法的返回值就是一个String,不能随便写,return的结果会跟action的子元素result进行匹配,流程转到result元素对应的页面result.jsp,该jsp页面显示用户提交的数据。

13,    struts2不是单实例的,每一次请求都会生成一个Action对象。而struts1Servlet都是单实例的。

14,    Struts2的类型转换,对于8种基本类型以及StringDate等常见类型,Struts2可以使用内建的类型转换器实现自动转换;但对于自定义的对象类型来说,需要我们自己制定转换方式。

15,    1)表单页面

2JavaBean

3struts.xml中进行配置,并且创建对应的ActionUserActionUserAction类继承自ActionSupport类,对于实际开发来说,都要继承ActionSupport类,它提供了诸如国际化,类型转换,服务器端验证等等。

 

 

4)编写类型转换器converter,所有的类型转换器都应该继承自DefaultTypeConverter(ognl)

5)属性与类型转换器关联文件 Action-conversion.properties,如UserAction-conversion.properties

6user01_output.jsp页面

16,    对于自定义的类型转换器来说,需要提供3方面的信息:Action名字、Action中待转换的属性名以及该属性对应的类型转换器

17,           对于自定义的转换器,我们可以继承StrutsTypeConverter,它有两个抽象的方法convertFromString(Map context,String[] values,Class toClass) ,convertToString(Map context,Object o),实际上就是将DefaultTypeConverter类中的convertValue()方法进行了拆分。
18,           批量转换,跟普通的转换没有区别,只是原来使用的属性是User类型,现在使用List<User>;
19,           全局类型转换用的比较少,局部类型转换的“***-conversion.properties”与Action在同一包下面,而全局类型转换文件是在src下,文件名固定“xwork-conversion.properties”
实际开发中,更多的还是使用局部转换器。
20,           Action类中的execute()方法,类似于Servlet中的doGet(),doPost()方法,默认执行的是execute()方法,我们也可以指定我们自己的方法进行处理。即在struts.xml中action元素中定义属性method,属性值即为待执行的方法,其中该方法要与execute保持一致,但是不推荐使用,因为容易造成Action混乱。 

21,输入验证举例

1)         注册页面

2)         struts.xml中注册

3)         RegisterAction的处理

22,两种级别错误信息的使用方式及标签库的显示方式

23,struts2标签的使用
24,输入校验总结:
1)                首先进行类型转换
2)                然后进行输入校验(validate方法)
3)                如果在上述步骤中出现了任何错误,都不会执行execute方法,会转向struts.xml中该action的名为input的result所对应的页面。
4)                当上述过程没有任何错误时,才会执行execute方法。
注意:如果在类型转换过程中出现了错误,struts2会将该错误放到filed错误级别。
25,ActionSupport类的addActionError()方法的实现:首先创建一个ArrayList对象,然后将错误消息添加到该ArrayList中。

26,当调用getActionErrors()方法返回Action级别的错误信息列表,返回的实际上是集合一个副本而不是集合本身,因此对集合副本调用clear()方法清除的依旧是副本中的元素而非原集合的元素。我们可以调用

this.clearErrors();//两种级别的错误都会被清除

   或者分别调用两种级别的错误消息

this.clearActionErrors();

  this.clearFieldErrors();
27,FieldError级别的错误信息底层是用LinkedHashMap实现的,该Map的key是String类型的,value是List<String>类型的,这就表示一个Field Name可以对应多条错误信息,这些错误信息都放置在List<String>集合当中。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值