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

   是不是打得开,如果不行估计要想点办法了。。。。。 对策正在调查中 :(

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值