text.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>回收物列表</title>
<link rel="stylesheet" href="styles/text.css"/>
<script type="text/javascript"src="scripts/jquery.min.js"></script>
<script type="text/javascript"src="scripts/text.js"></script>
</head>
<body>
<div>
<form>
<div>
<label>请输入回收物种类</label>
<select name="selectId" id="selectId">
<option value="%">全部回收物</option>
<option value="金属回收物">金属回收物</option>
<option value="塑料回收物">塑料回收物</option>
<option value="玻璃回收物">玻璃回收物</option>
<option value="纸张回收物">纸张回收物</option>
<option value="厨余垃圾">厨余垃圾</option>
<option value="其他垃圾">其他垃圾</option>
</select>
</div>
<div>
<input type="button" value="查询" id="btSearch"/>
</div>
<br>
<br>
</form>
<div>
<table id="table-result">
<thead>
<tr>
<th>checktype_id</th>
<th>cid</th>
<th>tchek</th>
<th>content</th>
<th>cvalue</th>
<th>ctype</th>
<th>cname</th>
<th>smstemplate</th>
<th>remark</th>
</tr>
</thead>
<tbody id="tbody-result">
</tbody>
</table>
</div>
</div>
</body>
</html>
text.js页面
$(function(){
$('#btSearch').click(function(){
var selectId=$('#selectId').val();
var tbody=window.document.getElementById("tbody-result");
console.log(selectId);
$ajax({
type:"post",
dataType:"json",
url:"http://localhost:8080/work/checktype/check.do",
data:{ selectId:selectId },
success:function(msg){
if(msg.ret){
var str="";
var data=msg.data;
for(i in data){
str +="<tr>" +
"<td>" + data[i].checktype_id + "</td>" +
"<td>" + data[i].cid + "</td>" +
"<td>" + data[i].tchek + "</td>" +
"<td>" + data[i].content + "</td>" +
"<td>" + data[i].cvalue + "</td>" +
"<td>" + data[i].ctype + "</td>" +
"<td>" + data[i].cname + "</td>" +
"<td>" + data[i].smstemplate + "</td>" +
"<td>" + data[i].remark + "</td>" +
"</tr>";
}
tbody.innerHTML = str;
}
},
error: function(){ alert("查询失败")
}
});
});
});
<!doctype html>
checktype_id | cid | tchek | content | cvalue | ctype | cname | smstemplate | remark |
---|
提示错误
com.lfh.check.service.ServiceException: cname不存在
at com.lfh.check.service.ChecktypeServiceImpl.listchecks(ChecktypeServiceImpl.java:18)
at com.lfh.check.web.ChecktypeController.list(ChecktypeController.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
1.确认地址http://localhost:8080/work/checktype/check.do无误
2.错误信息贴出来看下
500是后台错误,光贴前台没用
service里的cname是哪里的字段,检查下是不是名字错了,看大小写对不对!
package com.lfh.check.dao;
import java.util.List;
import java.util.Map;
public interface ChecktypeDao {
List> findByName(String cname);
}
package com.lfh.check.service;
import java.util.List;
import java.util.Map;
public interface ChecktypeService {
List> listchecks(String cname);
}
package com.lfh.check.service;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.lfh.check.dao.ChecktypeDao;
@Service("checktypeService")
public class ChecktypeServiceImpl implements ChecktypeService{
@Autowired
private ChecktypeDao checktypeDao;
public List<Map<String, Object>> listchecks(String cname) {
if(cname==null||cname.trim().isEmpty()){
throw new ServiceException("cname不存在");
}
return checktypeDao.findByName(cname);
}
}
data:{ selectId:selectId },
AJAX data这里没有双引号改成这种 你试一下 data:{"selectId":selectId}
package com.lfh.check.web;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.lfh.check.service.ChecktypeService;
@Controller
@RequestMapping("/checktype")
public class ChecktypeController implements Serializable{
/**
*
*/
private static final long serialVersionUID = 3609958317843940347L;
@Autowired
private ChecktypeService checktypeService;
@RequestMapping("/check.do")
@ResponseBody
public JsonResult<List<Map<String,Object>>> list(String cname){
List<Map<String,Object>> list=checktypeService.listchecks(cname);
return new JsonResult<List<Map<String,Object>>> (list);
}
}
$ajax({ ==> $.ajax({
data:{ selectId:selectId }, 后台用cname接受参数,前台传参数的时候就应该用cname,必须前后台保持一样,你这里用了selectId传到后台,
后台肯定接受不到参数,就报不存在错误了
改成这样 data:{ cname : selectId },
if(cname==null||cname.trim().isEmpty()){
throw new ServiceException("cname不存在");
}
你查一下,cname为什么是null?异常不是这里报的????
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
resultType="java.util.Map"
parameterType="String">
select
checktype_id as checktypeId,
cid as cid,
tchek as tchek,
content as content,
cvalue as cvalue,
ctype as ctype,
cname as cname,
smstemplate as smstemplate,
remark as remark
from
tb_checktype
where
cname LIKE #{selectId} OR cname=#{selectId}
问题以全部解决,谢谢各位