ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 研磨Struts2 之 第十八章 使用ajax【私塾在线原创】

研磨Struts2 之 第十八章 使用ajax【私塾在线原创】

原创 Linux操作系统 作者:不知道010 时间:2012-02-28 16:34:40 0 删除 编辑
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的引用,<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
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/26715408/viewspace-717304/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-02-28

  • 博文量
    15
  • 访问量
    6366