dwr入门实例一

上面一篇文章简单的讲解了,dwr的一些配置步骤。现在我们就自己东西写一个dwr应用的一个实例吧。

写实例前,我们还的学习一个dwr的基本知识点,就是写javascript代码。

我还是根据官方的教材用我理解的讲解下吧(ps:由于本人的英语水平有限,至今未过cet4,杯具啊,

所有并没有一句一句的翻译啦,就是写个我理解的大体意思,具体的还是的各位自己去官方看英文文档吧,哈哈)

编写第一步:首先在你的jsp或者其他显示脚本的页面中加入下面两行代码,引入js控件:

<script src='/[YOUR-WEBAPP]/dwr/interface/[YOUR-SCRIPT].js'></script>
<script src='/[YOUR-WEBAPP]/dwr/engine.js'></script>

第一个[YOUR-SCRIPT]这个其实就是你在dwr.xml中配置的javascript属性的值.
下面我们讲解一些规则:
1.首先我们还是写个完整的示例吧。
后台的java类:

2.web.xml的编写,dwr.xml文件的编写,这里我就不把web.xml的编写的代码贴出来了,大家可以看我上一篇文章《dwr入门》

<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
"http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="DwrDemo">
<param name="class" value="demo.DwrTest"/>
</create>
</allow>
</dwr>

 3.编写前台页面:

首先你得加入两个js文件,这是有dwr框架生成的。

<script src='/[YOUR-WEBAPP]/dwr/interface/DwrDemo.js'></script>

<script src='/[YOUR-WEBAPP]/dwr/engine.js'></script>
DwrDemo.test1('dwr test',function(str){
 alert(str);
});

DwrDemo.test2('dwr test2' , ['a','b','c'],function (str){
alert(str);

});
这里接受java返回值,用的是回调函数来接受的。如果没有返回值,那么可以去掉这个回调函数。

回调函数还有两个属性:一个数设置超时timeout,一个数发生异常时调用的函数errorHandler属性。

例如:
Remote.test1('abc', {
  callback:function(str) { alert(str); },
  timeout:5000,
  errorHandler:function(message) { alert("Oops: " + message); }

});


注意:javascript不支持java的overreload。

更权威,更详细的请看官方文档:http://directwebremoting.org/dwr/introduction/scripting-dwr.html

下面就是测试了:在游览器地址栏中输入:http://localhost:8080/[webname]/[页面名字]

下面是我结合前面写的tab菜单的实例加入了dwr功能的tab菜单实例代码:

package loon.dwr.demo;  
  
public class TabSelected {  
  
    public String showContent(String tabMenuName) {  
        // System.out.println(tabMenuName);  
        if (tabMenuName.trim().equals("新闻"))  
            return "* 实拍:大浪袭来新人被拍沙滩上" + "* 退休交警上课如脱口秀引爆网络" + "* 实拍:韩国活埋感染口蹄疫病猪"  
                    + "* 女排联赛罕见一幕发16球得15分";  
        else if (tabMenuName.trim().equals("手机"))  
            return "手机";  
        else if (tabMenuName.trim().equals("篮球"))  
            return "篮球";  
        else if (tabMenuName.trim().equals("Blog"))  
            return "Blog";  
        return "";  
    }  
  
}  
dwr.xml代码:  
<!DOCTYPE dwr PUBLIC  
 "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"  
 "http://getahead.org/dwr/dwr30.dtd">  
  
<dwr>  
    <allow>  
        <create creator="new" javascript="Demo">  
            <param name="class" value="loon.dwr.demo.TabSelected"/>  
        </create>  
    </allow>  
</dwr>  
web.xml省略,参照前面的文章的。  
jsp文件:  
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>  
<%  
String path = request.getContextPath();  
String basePath = request.getScheme() + "://"  
+ request.getServerName() + ":" + request.getServerPort()  
+ path + "/"; %>  
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=GBK">  
        <title>tab菜单</title>  
        <style type="text/css"><!--  
            body {  
                font-family: Arial, Helvetica, sans-serif;  
                font-size: 15px;  
            }  
              
            ul {  
                list-style-type: none;  
                margin: 0;  
                padding: 0;  
            }  
              
            ul ol {  
                float: left;  
                display: block;  
                text-align: center;  
                background-color: #CCC;  
                border: 1px #CCC solid;  
                margin: 0 0 0 5px;  
                padding: 0px;  
                width: 60px;  
            }  
              
            ul ol#tab {  
                margin-bottom: 0px;  
                border-bottom: 0px;  
                background-color: #FFF;  
            }  
              
            div#content {  
                clear: both;  
                border-top: 0px;  
                border-left: 1px #CCC solid;  
                border-right: 1px #CCC solid;  
                border-bottom: 1px #CCC solid;  
                margin: 0px;  
                padding: 0;  
                width: 261px;  
                height: 150px;  
            }  
          
        </style>  
        <javascript type='text/javascript' src="/tab/dwr/interface/Demo.js" ></javascript>  
        <javascript type='text/javascript' src="/tab/dwr/engine.js"></javascript>  
        <javascript type="text/javascript">
            function tabonmouseover(obj){  
                /* 
                 var ol = document.getElementsByTagName("ol"); 
                  
                 for (i = 0; i < ol.length; i++) { 
                 ol[i].id = ""; 
                 }*/  
                document.getElementById("tab").id = "";  
                  
                obj.id = "tab";  
                Demo.showContent(obj.innerHTML, function(content){  
                    document.getElementById("content").innerHTML = content;  
                });  
            }  
          
    </javascript>  
    </head>  
    <body>  
        <ul>  
            <ol style="margin-left: 0px;" mce_style="margin-left: 0px;" οnmοuseοver="tabonmouseover(this);" id="tab">  
                新闻  
            </ol>  
            <ol οnmοuseοver="tabonmouseover(this);">  
                手机  
            </ol>  
            <ol οnmοuseοver="tabonmouseover(this);">  
                Blog  
            </ol>  
            <ol οnmοuseοver="tabonmouseover(this);">  
                篮球  
            </ol>  
        </ul>  
        <div id="content">  
            新闻内容  
        </div>  
        <javascript type="text/javascript"><!--  
            Demo.showContent(document.getElementById("tab").innerHTML, function(content){  
                document.getElementById("content").innerHTML = content;  
            });  
          
        </javascript>  
    </body>  
</html>  


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值