以前用Ajax只是做些简单的无刷新。而且这次项目里面使用了AJAX框架。刚开始看着还有点晕乎乎的。可是后面终于知道这个框架在做写什么事情了。框架就是把AJAX应用封装了一下而已。它有个主要方法就是submitAjax("Method Name","Refurbish Zone Name");
Method Name:你要提交到Action里面的方法名。我们使用的都是DispatchAction.
Refurbish Zone Name:成功返回后,要刷新区域的名称。
这个框架封装了一个<aa:zones name="****"></aa:zones>区域标签。
比如:写个三级联动。
//根据FORM表单提交的ACTION地址,注意:Action提交的地址后面千万不要加方法名,那样Ajax会连同方法名一起解析的。那就会报错。然后要加方法名的话。可以写个隐藏域。比如:
<html:form action="/login.do">
<html:hidden property="action" value="login"/>
相当于<html:from action="/login.do?action=login">
--------------------------------------------------页面Code---------BIGEN---------------------------------------------------------------
<html:select property="one">
<html:option value="a" onClick="AjaxAll.submit("getTwoByOne" ,"two")>a</html:option>
</html:select>
//你要刷新的区域
<aa:zones name="two">
<html:select property="one">
..................code..................................
</html:select>
</aa:zones>
----------------------------------------------------页面CODE------END-------------------------------------------------------------------
而且Ajax框架对HTML很严格。比如你多了个<td>或者<tr>,</td>等.
Ajax都不会产生效果。好像壮士一去不返还。哈哈
我碰到过一个Sturts标签,有一个集合在页面显示,忘记加<logic:notEqual>标签来判断是否为空了。Ajax都不给一点面子,就出现了壮士一去不返还的现象。我可找了很久。虽然ACTION里面已经绑定值了,但是还是没有。
所以说写代码还是规范点好,有助于以后维护或者二次开发。