dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr30.dtd">
<dwr>
<allow>
<create javascript="maildao" creator="new">
<param name="class" value="com.dbs.mail.dao.impl.MailDaoImpl"></param>
</create>

</allow>
</dwr>
web.xml <display-name>DWR (Direct Web Remoting)</display-name>
  <description>A Simple Demo DWR</description>
  
  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
  <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
  </init-param>
</servlet>
<servlet-mapping>
  <servlet-name>dwr-invoker</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
MailDaoImpl中的deleteMessage方法
public boolean deleteMessage(int id) {
try {
session.beginTransaction();
Mail m=(Mail) session.get(Mail.class, id);
System.out.println("++++++++++++++++++++deleteMessage+++++++++++++++++++++++");
m.setDelState(1);
session.getTransaction().commit();
return true;
} catch (HibernateException e) {
e.printStackTrace();
return false;
}finally{
if(session!=null){

session.close();
}
}
}
javascript;
<script type="text/javascript">
function deleteMail(id,a){
/*  alert(id); */ //在这里id是可以取到的
alset(a);
maildao.deleteMessage(id,function(result){
alert("ssssssssssssssssss");
if(result){
alert("删除成功");
var tr=a.parentNode.parentNode;
tr.parentNode.removeChild(tr);
}else{
alert("删除失败");

}

});
}
</script>
jsp代码(部分省略)
<script src='/dwr/interface/maildao.js'></script>
<script src='/dwr/util.js'></script>
<script src='/dwr/engine.js'></script>

  </head>
  
  <body>
   <s:property value="msg"/><br>
   <s:include value="top.jsp"></s:include>
     <hr color="red">
     <table border="1" width="80%" align="center">
      <tr>
      <th>标题</th><th>内容</th><th>操作</th>
      </tr>
    <s:iterator value="#session.user.sendMails" var="mails">
    <tr>
    <td>
    <s:property value="#mails.title"/>
    </td>
    <td>
    <s:property value="#mails.content"/>
   
    </td>
    <td>
    <s:property value="#mails.id"/>
    <a href="javascript:void(0)" onclick="deleteMail('<s:property value="#mails.id"/>',this)">删除</a>
    </td>
    </tr>
   
    </s:iterator>
     </table>
  </body>
</html>浏览器支持javascript,但是就是不执行删除的方法。dwr.jar是最新的版本,刚从官网上下的dwrjavascript

解决方案 »

  1.   

    访问http://localhost:8080/[YOUR-WEBAPP]/dwr/
    把8080换成你的端口,把[YOUR-WEBAPP]换成你的项目名称,可以看见一个页面,里面有你在dwr中配置的类。接着往里点,你会看到所有可以调用的方法列表
    如果看不到那么DWR就没有整合到你的web应用中jsp页面
    <script src='/[YOUR-WEBAPP]/dwr/engine.js'></script>
    <script src='/[YOUR-WEBAPP]/dwr/interface/[YOUR-SCRIPT].js'></script>
    。。
      

  2.   

    首先有两个dwr不在更新了
    dwr.xml写<convert/>要转换的类
      

  3.   

    谢谢大家给我指导,问题已解决,原来web.xml中filter-Mapping要配置成下面的配置 <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.action</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.do</url-pattern>
    </filter-mapping>