我的配置文件如下:
applicationContext.xml
<!--头文件,主要注意一下编码-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"><value>classpath:apppatent.properties</value>
</property>
</bean>
<!--建立数据源-->
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean> <bean id="patentSearchService"
class="com.luceneheritrixbook.searchengine.service.impl.PatentSearchServiceImpl" singleton="false">
<property name="patentSearchResultDao"><ref local="patentSearchResultDao"/></property>
</bean>
<bean id="patentSearchResultDao"
class="com.luceneheritrixbook.searchengine.service.dao.impl.PatentSearchResultDaoImpl" singleton="false">
<property name="dataSource"><ref local="myDataSource"/></property>
</bean>
</beans>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/dwr10.dtd"><dwr>
<allow>
<create creator="spring" javascript="patentSearchService">
<param name="beanName" value="patentSearchService" />
</create>
<!-- Bean for Search -->
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.PatentSearchResult">
</convert>
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.SearchResults">
</convert>
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.SearchRequest">
</convert>
</allow>
</dwr>web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Spec Builder</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>response-filter</filter-name>
<filter-class>com.luceneheritrixbook.searchengine.filter.SetResponseFilter</filter-class>
</filter> <filter-mapping>
<filter-name>response-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<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>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<session-config>
<!-- Default to 5 minute session timeouts -->
<session-timeout>5</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>speclist.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
我看了好多次,还是没发现什么问题啊,大家帮我看看哈,谢谢了!
applicationContext.xml
<!--头文件,主要注意一下编码-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"><value>classpath:apppatent.properties</value>
</property>
</bean>
<!--建立数据源-->
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean> <bean id="patentSearchService"
class="com.luceneheritrixbook.searchengine.service.impl.PatentSearchServiceImpl" singleton="false">
<property name="patentSearchResultDao"><ref local="patentSearchResultDao"/></property>
</bean>
<bean id="patentSearchResultDao"
class="com.luceneheritrixbook.searchengine.service.dao.impl.PatentSearchResultDaoImpl" singleton="false">
<property name="dataSource"><ref local="myDataSource"/></property>
</bean>
</beans>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/dwr10.dtd"><dwr>
<allow>
<create creator="spring" javascript="patentSearchService">
<param name="beanName" value="patentSearchService" />
</create>
<!-- Bean for Search -->
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.PatentSearchResult">
</convert>
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.SearchResults">
</convert>
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.SearchRequest">
</convert>
</allow>
</dwr>web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Spec Builder</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>response-filter</filter-name>
<filter-class>com.luceneheritrixbook.searchengine.filter.SetResponseFilter</filter-class>
</filter> <filter-mapping>
<filter-name>response-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<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>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<session-config>
<!-- Default to 5 minute session timeouts -->
<session-timeout>5</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>speclist.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
我看了好多次,还是没发现什么问题啊,大家帮我看看哈,谢谢了!
script type='text/javascript' src="${pageContext.request.contextPath}/dwr/engine.js"></script>
<script type='text/javascript' src="${pageContext.request.contextPath}/dwr/util.js"></script>
<script type='text/javascript' src="${pageContext.request.contextPath}/dwr/interface/patentSearchService.js"></script>
<param name="beanName" value="patentSearchService" />
</create>creator="spring" 改成 creator="new"试试
检查你JS调用getSearchResults参数个数和后台是否一样,回调函数写对没
再仔细检查配置文件
再仔细检查 Action 提交的路径
<dwr>
<allow>
<create creator="spring" javascript="patentSearchService">
<param name="beanName" value="patentSearchService" />
</create>
<!-- Bean for Search -->
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.PatentSearchResult">
</convert>
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.SearchResults">
</convert>
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.SearchRequest">
</convert>
</allow>
</dwr>applicationContext.xml
<bean id="patentSearchService"
class="com.luceneheritrixbook.searchengine.service.impl.PatentSearchServiceImpl" singleton="false">
<property name="patentSearchResultDao"><ref local="patentSearchResultDao"/></property>
</bean>
<bean id="patentSearchResultDao"
class="com.luceneheritrixbook.searchengine.service.dao.impl.PatentSearchResultDaoImpl" singleton="false">
<property name="dataSource"><ref local="myDataSource"/></property>
</bean>web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>...
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<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>
</servlet>
在JSP页面的引用是这样的:
script type='text/javascript' src="${pageContext.request.contextPath}/dwr/engine.js"></script>
<script type='text/javascript' src="${pageContext.request.contextPath}/dwr/util.js"></script>
<script type='text/javascript' src="${pageContext.request.contextPath}/dwr/interface/patentSearchService.js"></script>我没看出配置哪里不对啊?你们帮我看看吧,谢谢了,另外我的getSearchResults函数是这样的:
public SearchResults getSearchResults(SearchRequest request)在JSP中的调用是这样的:
function doSearch(type){
window.alert('hehe'); var result = document.getElementById("result");
var pagingdiv = document.getElementById('paging');
result.innerHTML="aaaaaa";
pagingdiv.innerHTML = ""; if (type != 'paging') {
window.alert('if');
var startindexinput = document.getElementById('startindex');
window.alert('if2');
startindexinput.value = "1";
window.alert('if3');
}
window.alert("test");
request = {startindex:1, query:""};
DWRUtil.getValues(request);
window.alert('dwrtest');
patentSearchService.getSearchResults(request, fillPage);
window.alert('getSearchResultsTest');
}
function fillPage(data){
window.alert('testFILLPAGE');
var list = data.results;
var resultdiv = document.getElementById('result');
var pagingdiv = document.getElementById('paging'); resultdiv.innerHTML = "";
pagingdiv.innerHTML = "";
if (list.length == 0) {
resultdiv.innerHTML = "<span>Sorry, we can't find what you want...</span>";
return;
}
for(var i=0; i<list.length; i++) {
var ele = document.createElement('div');
ele.setAttribute('id','info' + list[i]);
ele.innerHTML = "<span>loading..</span>";
resultdiv.appendChild(ele); }
minpage = data.minpage;
maxpage = data.maxpage;
startindex = data.startindex;
hasnext = data.hasnext;
if (minpage != 1) {
var link = document.createElement('a');
link.setAttribute("href","javascript:paging('" + ((minpage-11)*10+1) + "')");
link.innerHTML = "前10页<<";
pagingdiv.appendChild(link);
}
for (var j=minpage; j <=maxpage; j++)
{
if ((j-1)*10+1 != startindex)
{
var link = document.createElement('a');
link.setAttribute("href","javascript:paging('" + ((j-1)*10+1) + "')");
link.innerHTML = "第" + j + "页";
pagingdiv.appendChild(link);
}
else {
pagingdiv.innerHTML += ("第" + j + "页");
}
}
if (hasnext == 1) {
var link = document.createElement('a');
link.setAttribute("href","javascript:paging('" + (maxpage*10+1) + "')");
link.innerHTML = ">>后10页";
pagingdiv.appendChild(link);
}
}}
执行到patentSearchService.getSearchResults(request, fillPage);
就走不下去了,在fillPage中没有弹出的对话框,所以表明没有进入这个回调函数,但不知道为什么啊。
你先写个简单的没有参数的方法调试一下看看dwr能否执行,如果这都没能正确执行才能确定是你配置问题~