joehz 发表于 2013-1-29 12:07:44

sx:submit 详解

1.引入struts2-dojo-plugin-2.1.8.1.jar

2.代码说明
    下面是struts文档中的代码:
 
 
<%@ taglib prefix="s" uri="/struts-tags" %><%@ taglib prefix="sx" uri="/struts-dojo-tags" %><html><head>    <title>Ajax Examples</title>    <sx:head /></head>    加载dojo标签库和加载dojo的js库
 
 
 
<s:form id="form" action="AjaxTest">   <input type="textbox" name="data">   <sx:submit /></s:form> 
    简单的例子
 
<script type="text/javascript">dojo.event.topic.subscribe("/before", function(event, widget){    alert('inside a topic event. before request');    //event: set event.cancel = true; , to cancel request    //widget: widget that published the topic});</script><sx:submit beforeNotifyTopics="/before" /> 
    加载上面这一段,则submit按钮按下之后,先执行alert,然后才会提交 。
    一般来讲submit都是和事件(onclick)关联的,如果终止提交动作,则使用

event.cancel = true;    例如我们通常会对页面内容做个前台的校验,如果校验同过才提交到后台,
    我们可以在上面的topic(/before)中加入校验的代码,如果发现错误就可以
    用event.cancel = true;终止程序执行。
 
 
 
<script type="text/javascript">dojo.event.topic.subscribe("/after", function(data, request, widget){    alert('inside a topic event. after request');    //data : text returned from request(the html)    //request: XMLHttpRequest object    //widget: widget that published the topic});</script><sx:submit afterNotifyTopics="/after"/> 
 
    加载上面这一段,则submit按钮按下,response收到之后才会执行alert。
    这里的request我的理解是中间页面提交request。
 
 
 
3. 注意点、问题点
   总是提示dojo的对象没有定义
   试一下 http://mydomain/struts/dojo/struts_dojo.js
   是不是打得开,如果不行估计要想点办法了。。。。。 对策正在调查中 :(
 
 
 
 
 
页: [1]
查看完整版本: sx:submit 详解