大家好,我在用struts2+json+jquery做省市区三级联动代码如下:
Action里:
/**
* 获取省份
*/
public String getProvince() {
List<Province> provinceList = userService.getProlist();
System.out.println(provinceList);
JSONArray jsonArray = JSONArray.fromObject(provinceList);
try {
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print(jsonArray.toString());
} catch (IOException e) {
e.printStackTrace();
}
return null;
} /**
* 获取城市
*/
public String getCityByPid() {
System.out.println("---该行已执行---");
System.out.println(CProvince);
List<City> cityList = userService.findCityByProId(CProvince);
System.out.println("---该行已执行1---");
System.out.println(cityList);
JSONArray jsonArray = JSONArray.fromObject(cityList);
System.out.println("---该行已执行2---");
try {
response.setContentType("text/html;charset=UTF-8");
System.out.println("---该行已执行3---");
response.getWriter().print(jsonArray.toString());
System.out.println("---该行已执行4---");
} catch (IOException e) {
e.printStackTrace();
}
return null;
} /**
* 获取区
*/
public String getTownByCid() {
List<Address> townList = userService.findAddByCityId(cityFId);
JSONArray jsonArray = JSONArray.fromObject(townList);
try {
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print(jsonArray.toString());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
选取了省之后,报这个错:
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:801)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:519)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:713)不知道是什么原因,还请各位不吝赐教,在下不胜感激!!
Action里:
/**
* 获取省份
*/
public String getProvince() {
List<Province> provinceList = userService.getProlist();
System.out.println(provinceList);
JSONArray jsonArray = JSONArray.fromObject(provinceList);
try {
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print(jsonArray.toString());
} catch (IOException e) {
e.printStackTrace();
}
return null;
} /**
* 获取城市
*/
public String getCityByPid() {
System.out.println("---该行已执行---");
System.out.println(CProvince);
List<City> cityList = userService.findCityByProId(CProvince);
System.out.println("---该行已执行1---");
System.out.println(cityList);
JSONArray jsonArray = JSONArray.fromObject(cityList);
System.out.println("---该行已执行2---");
try {
response.setContentType("text/html;charset=UTF-8");
System.out.println("---该行已执行3---");
response.getWriter().print(jsonArray.toString());
System.out.println("---该行已执行4---");
} catch (IOException e) {
e.printStackTrace();
}
return null;
} /**
* 获取区
*/
public String getTownByCid() {
List<Address> townList = userService.findAddByCityId(cityFId);
JSONArray jsonArray = JSONArray.fromObject(townList);
try {
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print(jsonArray.toString());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
选取了省之后,报这个错:
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:801)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:519)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:713)不知道是什么原因,还请各位不吝赐教,在下不胜感激!!
解决方案 »
- Sql2008和myeclipse8.6连接时提示:TCP/IP 连接失败
- 在线等待,求解:Access denied for user 'root'@'localhost' (using password: YES)
- JAVA编写资源管理器
- struts 标签的问题!!!!
- weblogic做服务器,主做C/S(Swing),应用中有EJB,用什么实现Web service最好?
- JAVA中文问题?
- (100)急急急!!!!关于数据结构题目—员工管理系统(需要源码)
- 关于用jdbcodbc连数据库的简单问题
- 为什么老是有两个同名finder?发生在一个表有两个主键时生成的实体BEAN里,jbuilder8
- 能用JAVA把WORD文档转为TXT或是直接写入XML文件吗?具体如何作呢?谢谢!
- JSP:form表单中的onclick事件无效
- Java编程语言程序的认识误区
test.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>三级联动</title>
<script language="JavaScript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="my.js"></script>
</head>
<body>
<select id="province" name="province">
<option value="">
请选择省
</option>
</select>
<select id="city" name="city">
<option value="">
请选择市
</option>
</select>
<select id="town" name="town">
<option value="">
请选择区
</option>
</select>
</body>
</html>
my.js:
$(document).ready(function() {
/* 获取省份 */
$.post("userAction_getProvince.action", function(data) {
var jsonObj = eval("(" + data + ")");
for ( var i = 0; i < jsonObj.length; i++) {
var $option = $("<option></option>");
$option.attr("value", jsonObj[i].CProvince);
$option.text(jsonObj[i].PName);
$("#province").append($option);
}
});
/* 根据省份获取城市 */
$("#province").change(function() {
$.post("userAction_getCityByPid.action", {
CProvince : $("#province").val()
}, function(data) {
/* 清空城市 */
$("#city option[value!='']").remove();
/* 清空乡镇 */
$("#town option[value!='']").remove();
var jsonObj = eval("(" + data + ")");
for ( var i = 0; i < jsonObj.length; i++) {
var $option = $("<option></option>");
$option.attr("value", jsonObj[i].cityFId);
$option.text(jsonObj[i].CFName);
$("#city").append($option);
}
});
});
/* 根据城市获取乡镇 */
$("#city").change(function() {
$.post("userAction_getTownByCid", {
cityFId : $("#city").val()
}, function(data) {
/* 清空乡镇 */
$("#town option[value!='']").remove();
var jsonObj = eval("(" + data + ")");
for ( var i = 0; i < jsonObj.length; i++) {
var $option = $("<option></option>");
$option.attr("value", jsonObj[i].cityId);
$option.text(jsonObj[i].CName);
$("#town").append($option);
}
});
});
});