项目中使用到了dwr,所以就简单的学习了一下下:在页面点击按钮弹出窗口显示登陆用户基本信息。

1.导入dwr.jar到项目的lib包中。

2.配置web.xml文件:在web.xml中添加添加Servlet映射。

<servlet>
  <display-name>DWR Servlet</display-name>
  <servlet-name>dwr-invoker</servlet-name>
  <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
  <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
  </init-param>
  <init-param>
    <param-name>logLevel</param-name>
    <param-value>DEBUG</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>dwr-invoker</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

3.添加来配置dwr.xml文件:注意dwr文件和web.xml保持在同一目录下,create是函数调用相关参数和方法(反射),convert是返回的封装对象(如User)。

<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" 
    "http://directwebremoting.org/schema/dwr10.dtd" >
<dwr>
  <init>
  	<converter id="testbean" class="uk.ltd.getahead.dwrdemo.test.TestBean2Converter"/>
  </init>

  <allow>
    <create creator="new" javascript="LoginUserInfo">
		<param name="class" value="com.wl.manager.dwr.LoginUserInfo"/>
		<include method="showLoginUserInfo"/>
		<include method="showString"/>
    </create>
	<convert match="com.wl.common.dto.User" converter="bean"></convert>
  </allow>
</dwr>

4.在jsp页面引入相关js:注意,双引号引入的js是虚拟的,和dwr.xml中的javascript属性相对应(所以页面使用dwr.xml中对应的映射时,就需要引入这种虚拟js,建议在单个页面使用就引入),而单引号引入的js是在dwr.jar包中封装存在的(建议在页面头部、菜单部分、尾部等页面统一引入)。

<!-- dwr start ok! -->
<script type="text/javascript" src="/dwr/interface/LoginUserInfo.js"> </script>
<script type=\'text/javascript\' src=\'/dwr/engine.js\'></script>
<script type=\'text/javascript\' src=\'/dwr/util.js\'></script>
<!-- dwr end -->

5.jsp调用js,和普通js函数一致:调用函数。

onclick="dodwr(${Session.userid})"

6.相关js:其中function(data){*}是回调函数,data是后台方法函数返回的数据,可以是String,封装对象(如User对象),List,Map,本例中是返回封装对象.

function dodwr(uid){
  LoginUserInfo.showLoginUserInfo(uid, function(data) {
    $(“#login_user_name”).val(data.userName);
    $(“#login_user_password”).val(data.passWord);
    $(“#login_user_status”).val(userStatus2(data.userStatus));
    $(“#login_user_createTime”).val(data.creatTime);
  });
});

7.后台方法:对象User不在叙述,仅给出查询方法。

package com.wl.manager.dwr;


import java.sql.SQLException;

import com.wl.common.dao.UserDao;
import com.wl.common.dto.User;

public class LoginUserInfo{

	public String showString (){
		System.out.println("zhe shi yi ge ceshi!");
		return "zheshi ygie ceshi ";
	}
	
	public User showLoginUserInfo(int uid) throws SQLException {
		User u = new UserDao().getById(uid);
		System.out.println(u.getUserName());
		System.out.println(u.getPassWord());
		return u;
	}
	
}

  

版权声明:本文为milude0161原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/milude0161/p/4866733.html