关于struts2中ajax标签的一点学习笔记

来源:互联网 发布:美肤宝防晒怎么样 知乎 编辑:程序博客网 时间:2024/05/17 21:55

其实ajax的东西不是很熟悉,而且对于javascript这样零碎的语言实在是很抗拒。于是过去一直都逃避它,迫于项目的压力,不得已惟有硬碰硬了。为了快速上手,之前做了几个小实验,代码实在太多了。幸好struts2提供了一些ajax的简易实现。

 

 

跟网上所有的教程一样,先从最简单的开始吧~

 

在头结点加上<s:head theme="ajax"/>

然后

 

服务器端的代码我就不写了,大同小异。返回的可以是任何东西,各种表单、表格、图什么的,具体要看你请求的是什么。返回的资源会直接显示在information的div中。这里有个小问题要注意,requesturl中的value值必须是/*.action的形式,而不能是struts.xml中的对应的action名称。

 

关于其他的属性就不实验了。

 

接下来加上一点javascript的操作,用文本按钮操作返回资源的显示和隐藏。

于是很自然的想到这样写:

 

然后把div的id值传进去,完成!但是失败。。这个函数完全执行不了。

这个问题困扰了我很久,我尝试了各种各样的方法,最后发现,javascript的函数传值机制跟平时写的C++和JAVA是有区别的。

在上面的代码中只要改成function hide(i){...}就可以执行了。

为什么这样呢?

原来的代码大概类似于java中的String newcopy = prototype.clone();

该函数新申请了一个地址并接受了与该参数等值的值,因此getElementById()去了另外一个地址寻找节点,而那里没有我们要操作的节点,于是调用该函数的时候没反应。囧,知识还得系统的学才行,半桶水太危险了。

 

另外关于onclick中的函数调用也有一个容易疏忽的地方,比如有个<div id="a"></div>,传值的时候应该是hide('a')而不是hide(a),也是个困扰了我很久的低级问题。。

原创粉丝点击