我想用自动补全的方式搜索Hmsong实体类中的songname字段,以下是我的代码,希望好心人可以帮忙解答。com.accp.dao.impl包
HmsongDaoImpl类
public List<Hmsong> SearchSong(String songname) {
return this.getHibernateTemplate().find("from Hmsong h where h.songname like '%" + songname + "%'");
}com.accp.entity包
Hmsong类
实体类是通过Hibernate ORM过来的。
xml格式的。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" scope="application" javascript="SearchSong">
<param name="beanName" value="songDao"/>
<include method="SearchSong"/>
</create>
<convert converter="bean" match="com.accp.entity.Hmsong"/>
</allow>
</dwr> web.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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">
<!-- Ajax工程dwr的配置信息 -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<!-- 是否允许调试,如果要在浏览器中调试则必须设置为true -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<!-- 是否进行日制管理,如果是在要设置此参数,通常可以省略 -->
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
<!-- 如果允许跨域请求,则必须将此值设置为false,默认值为true -->
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- 以下代码是用于配置strut2时加的监听--> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <display-name>Struts Blank</display-name> <filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/action/*</url-pattern>
</filter-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list></web-app>ajax.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type='text/javascript' src='/HotMusicSystem/dwr/interface/SearchSong.js'></script>
<script type='text/javascript' src='/HotMusicSystem/dwr/engine.js'></script>
<script type='text/javascript' src='/HotMusicSystem/dwr/util.js'></script> <script type="text/javascript">
function gog()
{
var keys = document.getElementById("keys").value;
SearchSong.SearchSong(keys,call1);
}
function call1(data)
{
//当查询结果没数据时,不写这句会报错的
if(data!=null){
var keys = document.getElementById("keys").value;
//这个是去掉空格
keys=keys.replace(/(^\s*)|(\s*$)/g,"");
//如果不判断,一按下键就会有多条数据
if(keys != ""){
document.getElementById("tishi").innerHTML = "";
for(var i=0;i<data.length;i++){
document.getElementById("tishi").innerHTML+="<div onclick=" + "document.getElementById('keys').value=this.innerText" + " onmouseout=" + "this.style.backgroundColor=''"+ " onmouseover=" + "this.style.backgroundColor='#3266CC'>" +data[i] + "</div>" ;
}
}else{
document.getElementById("tishi").innerHTML = "";
}
}else{
document.getElementById("tishi").innerHTML = "";
}
}
</script>
</head> <body>
<TABLE cellPadding="4" width="100%" border="1"> <tr>
<td valign="top">
关键字:
</td>
<td>
<table>
<tr>
<td>
<input type="text" name="songname" id="keys" onkeyup="gog()" size="60">
</td>
</tr>
<tr>
<td bgcolor="#F6F6EE">
<div id="tishi"></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>输入任何文字后都弹出alert的报错。求解答!!!!!!
HmsongDaoImpl类
public List<Hmsong> SearchSong(String songname) {
return this.getHibernateTemplate().find("from Hmsong h where h.songname like '%" + songname + "%'");
}com.accp.entity包
Hmsong类
实体类是通过Hibernate ORM过来的。
xml格式的。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" scope="application" javascript="SearchSong">
<param name="beanName" value="songDao"/>
<include method="SearchSong"/>
</create>
<convert converter="bean" match="com.accp.entity.Hmsong"/>
</allow>
</dwr> web.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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">
<!-- Ajax工程dwr的配置信息 -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<!-- 是否允许调试,如果要在浏览器中调试则必须设置为true -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<!-- 是否进行日制管理,如果是在要设置此参数,通常可以省略 -->
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
<!-- 如果允许跨域请求,则必须将此值设置为false,默认值为true -->
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- 以下代码是用于配置strut2时加的监听--> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <display-name>Struts Blank</display-name> <filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/action/*</url-pattern>
</filter-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list></web-app>ajax.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type='text/javascript' src='/HotMusicSystem/dwr/interface/SearchSong.js'></script>
<script type='text/javascript' src='/HotMusicSystem/dwr/engine.js'></script>
<script type='text/javascript' src='/HotMusicSystem/dwr/util.js'></script> <script type="text/javascript">
function gog()
{
var keys = document.getElementById("keys").value;
SearchSong.SearchSong(keys,call1);
}
function call1(data)
{
//当查询结果没数据时,不写这句会报错的
if(data!=null){
var keys = document.getElementById("keys").value;
//这个是去掉空格
keys=keys.replace(/(^\s*)|(\s*$)/g,"");
//如果不判断,一按下键就会有多条数据
if(keys != ""){
document.getElementById("tishi").innerHTML = "";
for(var i=0;i<data.length;i++){
document.getElementById("tishi").innerHTML+="<div onclick=" + "document.getElementById('keys').value=this.innerText" + " onmouseout=" + "this.style.backgroundColor=''"+ " onmouseover=" + "this.style.backgroundColor='#3266CC'>" +data[i] + "</div>" ;
}
}else{
document.getElementById("tishi").innerHTML = "";
}
}else{
document.getElementById("tishi").innerHTML = "";
}
}
</script>
</head> <body>
<TABLE cellPadding="4" width="100%" border="1"> <tr>
<td valign="top">
关键字:
</td>
<td>
<table>
<tr>
<td>
<input type="text" name="songname" id="keys" onkeyup="gog()" size="60">
</td>
</tr>
<tr>
<td bgcolor="#F6F6EE">
<div id="tishi"></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>输入任何文字后都弹出alert的报错。求解答!!!!!!
为你量身定制的