struts2 学习小记(拦截器,监听器,解决表单重复提交,UI标签,bean标签,表单标签,非ui标签,自定义类型转化器)






------------------------------------------方式二----------------------------------------------
1.不推荐使用第一种接口,这里使用第二种,继承抽象类,先建立一个interceptor包并建类

2.在xml中配置自定义的拦截器

3.在xml中配置自定义的拦截器堆栈,以及必须配默认的堆栈

4.在动作中添加拦截器堆栈

5.也可以建立多个拦截器,可以看出执行顺序


------------------------------------------方式三---------------------------------------------
与二不同在于:该方式可以指定要拦截的方法都有哪些,默认情况下拦截器会拦截所有动作
1.继承类

2.添加想要或者不想要拦截的方法

------------------------------------------监听器---------------------------------------------


1.建立一个实现接口的类及其方法

2.添加监听器对象到拦截器中

3.查看结果

--------------使用内置token拦截器解决表单重复提交问题-----------------------------------------

1.在配置文档中配置内置的token拦截器

2.在配置文档中添加重复提交无效invalid.token及其页面token_error.jsp

3.在登录页面生成token令牌序列号

-----------------------------------------------------UI标签-------------------------------


-----------------------------



在注册成功页面显示信息:

------------bean标签--可以在界面当中实例化一个类的对象------------------
1.在注册界面中写一个bean标签,并实例化一个users类,其username值用ognl表达式赋为“请输入用户名”,
%{'请输入用户名'}

2.在表单标签中读取出来bean中的属性

3.为了使点击用户名输入框时,默认值消失,定义一个JavaScript代码


4.为了完善,默认值为浅灰,输入值为黑色


---------------------------


------------非UI标签----------------------------------------------------------

----------set标签-------
可以在页面中定义一个变量,该变量值来自于值栈
1. Action类中有一个msg变量,get set(到时候肯定存放在了值栈中)

2.获得并读取值栈中的msg


----------include标签-------
在当前页面中包含一个或多个静态或动态的页面
1.静态:例如msg文件夹下有个页面date.jsp

2.动态:例如msg文件夹下有个页面date.jsp

----------date标签-------
1.在Action中有一个date字段 get set并初始化

2.在页面中获得并读取

----------if标签-------

----------iterator标签-------
----遍历数组类型-----

还可以获得状态:

----遍历map类型-----

----------action标签-------
1.新建一个aciton

2.在xml中注册action

3.测试aciton标签

4.测试执行action中的某个方法

----------url标签-------

-----------------------------------------自定义类型转化器-------------------------------
1.新建一个phone实体类

2.添加引用 get set

3.登录界面添加手机号


4.自定义类型转换

4.1编写转换类

4.2在src目录下编写文件


浙公网安备 33010602011771号