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

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/26715408/viewspace-717304/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26715408/viewspace-717304/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值