DWR以及SSH集成DWR
阅读原文时间:2023年07月09日阅读:1

之前只是单独接触了DWR,知道一个基本的开发流程。

web.xml配置文件:

 

  DwrServlet

  org.directwebremoting.servlet.DwrServlet

  

  

   debug

   true

  

  

  

   logLevel

   WARN

  

  

  

   crossDemainSessionSecurity

   false

  

  1

 

 

  DwrServlet

  /dwr/*

 

 

dwr.xml配置如下:

  

  

   

  

  

   

  

  

 

然后在JSP中:

<%@page language="java"

 contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

dwr_6

 

这样子,DWR就能够单独的使用了,首先我以为在SSH中DWR也是这样配置就行了,就能够发挥作用,没想到并不是这样。

首先是web.xml跟单独使用DWR时是一样的。
然后是dwr.xml,这里将会有所改变,因为此时的dwr对象不再是自己new,而是交给了spring进行管理的,具体如下:

 

  

  

  

   

   

   

     

    

   

  

  

  

 

在网上找资料时, ,有的是将此处的value设置成strust中path值,我试了,但是没有成功。如果哪个前辈知道的话,可以给我说说,感激不尽。

其他地方都没有什么要特别注意的,但是strust.xml配置文件中必须得加上下面这句话。

为什么呢?!原因很明显,strust的过滤器与dwr中的过滤器产生了冲突。
web.xml中
strust的过滤器:

 

  Struts2

  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

 

 

  Struts2

  /*

 

dwr的过滤器:

 

 

  DwrServlet

  org.directwebremoting.servlet.DwrServlet

  

  

   debug

   true

  

  1

 

 

  DwrServlet

  /dwr/*

 

 

可以得出,strust过滤器中的url-pattern是*,而dwr则是/dwr/*,明显可以看出strust将拦截所有的路径,当然也就包括了原本给dwr的路径。

想到这里当然也就能够想到解决办法,那就是将本应该给dwr的路径,strust不再拦截,就好了,那是要怎样做呢?!确实上文早就给出了答案。

但是这句话是什么意思呢?!excludePattern表示这个将是strust不处理的路径,也就让/dwr.* 这个路径交个了DWR框架。
至此问题已经解决,从此以后,SSH与DWR集成不再成问题。

另外还将这个DWR动态生成下拉列表,并且选中特定项的JSP关键代码贴出来:

 

 

 

 

而在jsp的body里面则只需要:

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章