视频配套PPT,视频地址【
研磨Struts2视频课程】
Struts2对Ajax提供了非常好的支持,不但功能强劲,而且简单易用。
Struts2并没有自行开发新的Ajax框架,而是使用了目前比较流行的Ajax框架——Dojo和DWR,在他们的基础之上实现了很多常见的功能。同时,Struts2也可以通过插件的形式来使用
JSON,从而使得Ajax的实现更加灵活方便。
事实上,Struts2不需要大家直接去使用Dojo和DWR,而是直接使用Struts2提供的Ajax JSP
tags即可。
1
、准备
Action
java代码:
public InputStream getInputStream() throws Exception{
String result = "好的";
result = new String(result.getBytes("UTF-8"));
return new ByteArrayInputStream(result.getBytes());
}
2
、配置
struts.xml
java代码:
为了使开发Ajax变得轻松惬意,Struts2提供了一些JSP Tags,通过这些自定义的标签库,使得开发人员无需再写那些繁琐的写法。
要使用Struts2.1的Ajax Tags,需要做以下的工作:
1、把Dojo插件,也就是struts2-dojo-plugin-2.1.8.1.jar文件,复制到WEB-INF/lib文件夹下
2、在页面上增加taglib的引用,
3、在每个页面的顶部包含head标签
好了,基本的知识就了解到这里,接下来看看具体如何使用Struts2的Ajax tags。
1 、 head 标签
head标签的地位比较特殊,它的功能是用来下载Dojo文件和相应的Javascript代码,因此所有其他使用Dojo标签的页面都应该包含这个标签。
2 、 div 标签 — 可以当做 body 的 onload 事件
div标签展示为html中的Div元素,但是div标签能够异步的、动态的加载需要展示的内容,而且div标签还提供一个内部的计时器,可以循环的在设定的时间点去重新加载需要展示的内容。
示例:
java代码:
3
、
a
标签和
submit
标签
a标签和submit标签的功能是类似的,都能够发起一个Ajax请求,只不过a标签展示为html中的a元素,而submit标签展示成为按钮的形式。两个元素都有一个target的属性,用来指定显示Ajax响应后的信息的元素,通常是一个div元素。
示例:
java代码:
4 、 bind 标签
bind标签主要用来把一个事件和事件处理程序关联起来,当然它也可以把一个对象的事件和一个topic联系起来。
示例:
java代码:
5
、
datetimepicker
标签
datetimepicker标签主要用来实现一个日期控件,可以表现为一个日历表或者是一个ie时间表。
示例:
java代码:
6 、 autocompleter 标签
autocompleter标签实现的是具有自动完成功能的组合框,输入一定的数据后,会出现一个下拉块,里面罗列着一些与输入相关的关键词,你可以通过选择一个来自动完成输入。当然也可以直接点击下拉列表来选择一个值。
在页面初始化的时候,选取一个集合用来初始化组合框。
示例:
准备 Action
java代码:private List users = new ArrayList();
。。。
public String execute() throws Exception {
users.add("apple");
users.add("ball");
users.add("banana");
return super.execute();
}
autocompleter
标签
java代码:
7 、 textarea 标签
textarea标签用来实现复杂的文本编辑框,类似于大家在邮件系统或是博客系统里面看到的,可以在线编辑的文本框,可以设置一些基本的格式。
示例:
java代码:
8
、
tabbedpanel
标签
tabbedpanel标签用来实现多页签的面板,也被称为tab面板,而且单个面板可以单独关闭,就类似于Eclipse打开开发的源文件一样。
示例:
java代码:
9 、 tree 和 treenode 标签
tree标签用来实现在页面展示一个树形结构,它可以包含一个或多个treenode标签。tree标签实现的是一个基于dojo的树。treenode标签里面还可以包含一个到多个treenode标签,形成父子节点。
示例:
1 、父子关系
java代码:public class Node {
private String id;
private String name;
private List children = new ArrayList();
。。。
}
2
、在
Action
中准备数据,准备
Node
之间的关系
亚洲
中国
北京
日本
3
、在页面引用
tree
标签
java代码:
为了更容易使用JSON,Struts2提供了JSON插件,这个插件提供了名为“json”的ResultType,如果设置某个Result的类型为json,那么JSON插件会把这个Action对象序列化成为一个json格式的字符串,然后再向客户端返回这个字符串。
要使用JSON插件,只需要把struts2-json-plugin-2.1.8.1.jar文件拷贝到WEB-INF/lib里面即可。
可以在中设置root参数,根据ognl表达式取出你需要输出的结果的根对象。
java代码: user
在“CRUD综合运行—初级”的时候,只是简单示例了Struts2的核心知识,与现实中的开发还有很大区别,在这一章中,将逐步的补全,看到在现实的开发中如何运用;另外,也准备将一些新学的知识(如跟Spring融合)融合进去。
基本的示例仍使用增删改查用户信息,业务不变,只是要求更灵活,更规范。下面我们看看都能做出哪些进化:
对原有知识的调整:
原来在写Action的时候,
把一组相关的动作都写在一个
Action
类内,但是各个动作都是以一个public方法的形式出现,并没有一个统一的调度,因此,显得杂乱无章,最后有一个统一的入口,方便程序员以后进行修改。
融合新学的知识:
在真实的项目中,是不会单独使用Struts2的,至少
还需要
上传用户的头像、
显
示男女比例、
在提交之前验证
userId
是否已经被占用了。
由于是继续深化,这章的所有代码都是在“CRUD综合运用—初级”的基础上修改的。
1
、在
Action
中引用
tomcat
的路径
java代码:
String dstFileName = ServletActionContext.getRequest().getRealPath("/heads")
+"/"+user.getUserid()+".gif"
;
2
、在页面上引用已经上传的头像
java代码:
.gif" alt="无头像">
视频配套PPT,视频地址【
研磨Struts2视频课程】
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26662749/viewspace-717577/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26662749/viewspace-717577/