项目中使用到了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;
}
}
浙公网安备 33010602011771号