http://www.cnblogs.com/Icebird/tag/Dojo/
Struts 2基于Dojo编写一些AJAX标志(在Dojo中称为Widget),要使用这些标志的AJAX功能,需要将标志的“theme”属性设为“ajax”。同时,亦需要将加入在<head>与</head>之间加入<s:head theme="ajax" />。当使用这些标志的AJAX功能,有些属性可能会经常用到,所以我会对这些属性稍作解释。
名称 | 描述 |
href | XHR(XMLHttpRequest)请求的地址 |
listenTopics | 监听的Dojo话题(Topic)以触发自身,如可以在可以通过发布(Publish)相应的话题,通知<s:autocompleter />重新加载其备选项(Options) |
notifyTopics | 完成远程调用后,发出通知,触发相应的Javascript函数或Dojo Widget |
formId | 需要提交到服务器的表单的ID |
formFilter | 过滤表单字段的Javascript函数名称 |
indicator | 在XHR处理过程中,包含用户提示的信息的HTML元素的ID,如图片或DIV等 |
(1)<sx:head />
<title>Showcase</title>
<script language="JavaScript" type="text/javascript">
var controller = {
refresh : function() {alert('aa');}
};
dojo.event.topic.registerPublisher("/click", controller, "refresh");
</script>
(2) οnclick="controller.refresh()"
---------------
2.var f = document.forms;
dojo.lang.forEach(f, encodeForm);
var url = dojo.io.encodeForm(form, 'utf')
3.form提交不了??
<script language="JavaScript" type="text/javascript">
var controller = {
refresh : function() {
alert('aa');
var form = dojo.byId("uploadForm");
alert(form);
// form.updated=true;
form.submit();
alert(form.action);
//form.value="";
}
};
dojo.event.topic.registerPublisher("/click", controller, "refresh");
</script>
-------
<s:form action="doUpload" id="uploadForm" method="POST" enctype="multipart/form-data" >
<s:file name="upload" οnchange="controller.refresh()" ></s:file>
</s:form>
------------------------------