学习dwr框架的总结。
现在是下午16:30分,嘿嘿,还有一个小时就下班罗~~ 在这里吐槽下这家XX公司。哎比我上家OO公司更惨。我记得上家OO公司只是限制了QQ,而这家公司把外网都给限制了。蛋痛啊,尤其对于我这种菜鸟级别的。很多东西不懂就得Google啊~哎~~ 不说了写写总结吧,个人认为dwr是一个利用javascript来控制前后台数据异步交互的框架,之前我是没接触过, 应为公司可能要用我就抽时间来学习学习。
首先呢:需要导入一个dwr.jar包 ,如果是2.0的最好导入一个commons-logging-1.0.4.jar,否则就会报一个找不到类异常。
A) 我们来创建一个类: public class UserService { //存放数据 private static Map dataMap = new HashMap(); public boolean save(User user){ if(dataMap.containsKey(user.getId())) return false; System.out.println("下面开始保存用户"); System.out.println("password:"+user.getPassword()); System.out.println("name:"+user.getName()); System.out.println("email:"+user.getEmail()); dataMap.put(user.getId(),user); System.out.println("用户保存结束"); return true; } } B) 创建一个javabean用于数据转换: public class User { private String id; private String name; private String password; private String email; getset.... }
C) 在WEB-INF下的web.xml配置如下:
<servlet> <description>Direct Web Remoter Servlet</description> <display-name>DWR Servlet</display-name> <servlet-name>dwr-invoker</servlet-name> <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
D) 再创建一个dwr.xml文件,配置如下: <dwr> <allow> //js中根据 UserService这个名字来调用java中的方法。 <create creator="new" javascript="UserService"> <param name="class" value="com.kit.service.UserService"></param> </create> //告诉DWR在服务器端Java 对象表示和序列化的JavaScript之间如何转换数据类型。比如data.xxx就能取到了 <convert match="com.kit.service.User" converter="bean"></convert> </allow>
</dwr>
E) jsp代码如下: <html> <head> <base href="<%=basePath%>">
<!-- 这两个文件是必须有的 --> <script type='text/javascript' src='<%=path%>/dwr/engine.js'> </script> <script type='text/javascript' src='<%=path %>/dwr/util.js'> </script> <!-- 调用 必须要写 否则它会报你的方法未定义() --> <script type='text/javascript' src='<%=path %>/dwr/interface/UserService.js'> </script> <script> function saveFun(data) { if (data) { alert("注册成功!"); } else { alert("登陆已经存在!"); } } function OnSave(){ var userMap ={}; userMap.id = regForm.id.value; userMap.password = regForm.password.value; userMap.name = regForm.name.value; userMap.email = regForm.email.value; //调用java方法 .save(参数,会返回一个结果集); UserService.save(userMap,saveFun); } </script> </head>
<body> <input type="button" value="提交" onclick="val();"/> <form name="regForm"> <br>登陆ID:<input type="text" name="id"/><br/> 口令:<input type="text" name="password"/><br/> 姓名:<input type="text" name="name"/><br/> 电子邮件:<input type="text" name="email"/><br/> <input type="button" name="submitBtn" value="提交" onclick="OnSave();"> </form> </body> </html> 那么像list集合我们该怎么来遍历呢? function val(){ UserDao.UserQuery(function(data){ for(var i=0;i<data.length;i++){ alert(data.name);
} 那么像map又该怎么遍历呢? for(var key in data){
//根据key那value值。
var bean =data[key]; alert(bean.name); } 那在js中怎么把它转成javabean呢? function OnSave(){ //把它组成一个键值对的形式。必须和实体类属性一致。 var rmap ={sname:"你好 啊",sid:"sid",spass:"spass"}; UserService.save(rmap,function(data){}); } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|