大家好,我正在使用dwr处理java-servlet中的ajax调用,
这是我的dwr.xml,
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"> <dwr> <allow> <create creator="new" javascript="TempCardServlet"> <param name="class" value="com.slingmeadia.notifier.servlet.TempCardServlet"/> </create> </allow> </dwr>
这是我的servlet文件,因此我将
package com.slingmeadia.notifier.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.LinkedHashMap; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class TempCardServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String funtionType=""; if(request.getParameter("functiontype")!=null){ funtionType = (String)request.getParameter("functiontype"); } if(funtionType.equals("logout")){ processLogout(request, response); }else{ } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processLogout(request, response); } public Map sampleFill(int empid,String functiontype){ System.out.println("functiontype : "+functiontype); Map employeeData = new LinkedHashMap(); if(functiontype.equals("add")){ employeeData.put("name", "Antony"); }else{ employeeData.put("name", "Antony"); employeeData.put("cardnumber", "87896857852"); employeeData.put("issuedate", "17/01/2012"); } return employeeData; } }
这就是我从jsp文件中调用方法的方式:
<script src='dwr/engine.js'></script> <script src='dwr/util.js'></script> <script src='dwr/interface/TempCardServlet.js'></script> <script> function getValues(id) { var empid = id.value; var optionValue = document.getElementById("selectedOption").value; TempCardServlet.sampleFill(empid,optionValue,{callback:setValues,async:false}); } function setValues(tempcardMap) { if(tempcardMap !=null){ document.getElementById("empname").value=tempcardMap.name; document.getElementById("tempcardnumber").value=tempcardMap.cardnumber; document.getElementById("dateofissue").value=tempcardMap.issuedate; } } </script>
这就是我如何调用javascript方法:
<td width="55%"><input class="inputBoxes" type="text" name="empid" id="empid" onblur="getValues(this)" /></td>
看起来一切都安排得很好,没有问题,但它没有用,也没有任何不适。
我也尝试过喜欢
在我输入的网址中 http://localhost:8080/acct/dwr/index.html
http://localhost:8080/acct/dwr/index.html
它提供了DWR已知的类的列表:当我尝试从浏览器打开类文件并提供一些示例输入时,我的类文件也存在,但没有给出任何错误,也没有输出。
请帮助我解决此问题。
问候。
1.检查DWR路径
如果您要在WEB-INF中包含查看文件,则
<script src='dwr/engine.js'></script> <script src='dwr/util.js'></script> <script src='dwr/interface/TempCardServlet.js'></script>
引用此方式将起作用。如果不是这样,则必须给出如下所示的正确路径
<script src='../dwr/engine.js'></script> <script src='../dwr/util.js'></script> <script src='../dwr/interface/TempCardServlet.js'></script>