< gobal-result>
gobal-result>
上面代码直接写于包下(不在action内)在action可判断显示(其他else执行此result
)
Ognl表达式 单独拿出来总结
4、如何接受参数
Action中接收参数的方法:
1. 一般属性:oction接收。在action中定义接收的参数名,如String name 表示要接收的参数是name的值。写该参数的get/set方法,而在jsp中form表单的提交 name=
2. FomainModel(DTD)创建bean将参数封装,如String name,String password 可以封装为User类,在action中,声明User user 添加user的get/set 方法。我们可以通过user.getName(),user.getPassword()得到传来的参数,另外,在jsp中也得修改:
[html] view plaincopyprint 用户名:
密 码:
用户名:
密 码:
3.ModelDriven 接口实现getModel()
首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法
[java] view plaincopyprint public class loginAction extends ActionSupport implements ModelDriven
private Users users =new Users();
public Users getModel(){
return users;
}
}
public class loginAction extends ActionSupport implements ModelDriven
private Users users =new Users();
public Users getModel(){
return users;
}
}
注意: 必须自己new对象
用泛型,省的自己得类型转换
实现:struts调用getModel()获得action中对象,为其设置属性
中文参数传递乱码问题
解决一 struts.xml文件中配置如下 value默认为utf8,可修改
解决二 在web.xml中将
解决三:自己写一个过滤器,配置在strutts过滤之前
解决四:spring 配置
5、如何进行类型转换
Struts2 的类型转换,对于 8 个原生数据类型以及 Date,String 等常见类型,Struts2 可以使用内建的类型转换器实现自动的转换;但对于自定义的对象类型来说,就需要我们自己指定类型转换的方式了
局部类型转换
Action同包下配置一个文件 key=value 类型转换器
全局类型转换
类型中文显示
5.1 自动类型转换(内置转换器)
Int date类型
5.2 自定义类型转换器
5.2.1 ongl类型转换器
对于自定义的类型转换器来说需要提供 3 个信息:Action 的名字Action 中待转换的属性名以及该属性对应的类型转换器。其中Action 的名字是通过属性文件名来获得的、Action 中待转换的属性名是通过属性文件中的 key 来获得的,该属性对应的类型转换器是通过该 key 所对应的 value 来获得的。
当找到处理action之后,不是直接调用set方法,而是会调用converter类的conver方法,转换之后会返回一个Object ,然后调用action中的set方法。
5.1.2 struts类型转换器(封装ognl,读API查源码)
可以使用 Struts2 框架自带的类型转换器 StrutsTypeConverter 简化类型转换代码的编写,StrutsTypeConverter继承于DefaultTypeConverter父类,并且提供了两个抽象方法: convertFromString 与 convertToString,分别表示从页面的字符串转换为后台对象以及从后台对象转换为页面的字符串,我们只需实现这两个抽象方法即可实现类型转换
5.3 批量类型转换
5.4 全局类型转换器
在 src 目录下新建 xwork-conversion.properties,该文件的内容是待转换的类=转换器的名字,即com.test.bean.User=com.test.converter.UserConverter1开发中常见局部转换器,全局转换器知道就可以
6、 如何输入校验
自定义和xml两种方式 (独立总结)
7、如何传递参数
8、如何进行上传下载
9、如何实现过滤器、
10、如何实现监听器