搭建了ssh框架,配置文件都配置好了,后台也有json数据,就是从后台返回前端ajax的时候,总是进入error方法!!!另外,我感觉很奇怪,明明响应的的方法为空,居然还能有sql和json输出。project-clean选项没有当前的项目。但是2次tomcat的clean都清理了,还是可以打印出原方法的sql、json,但是我为了测全清空了
public class userAction extends ActionSupport implements ModelDriven<User>{
private User u = new User();
/**
* 模型驱动 封装用户,必须手动new javabean
*/
@Override
public User getModel() {
// TODO Auto-generated method stub
return u;
}
// 提供service的成员属性,提供set方法
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
/**
* echart
*/
public String list(){
System.out.println("a");
return null;
这里的代码清空了还是一样有sql输出,请问这部分的代码要怎么传json到前端?用了jsonArray工具是获取到了json,但是servletActionContext传到前端ajax就进入error方法
}
}
<body>
<div id="chartmain" style="width: 600px; height: 400px;"></div>
</body>
<script type="text/javascript">
//初始化echarts
function chushihua(myChart){
var option = {
title:{
text:'ECharts 数据统计'
},
series:[{
name:'访问量',
type:'pie',
radius:'90%',
data:[
{value:0,name:'无'},
]
}]
};
myChart.setOption(option);
}
//从数据库读取数据赋值给echarts
function fuzhi(myChart){
$.ajax({
contentType : "application/json",
type : "GET",
url : "${pageContext.request.contextPath}/user_list.action",
dataType : "json",
success : function(data) {
//创建一个数组,用来装对象传给series.data,因为series.data里面不能直接鞋for循环
var servicedata=[];
for(var i=0;i<data.length;i++){
var obj=new Object();
obj.name=data[i].username;
obj.value=data[i].age;
servicedata[i]=obj;
}
myChart.setOption({
title:{
text:'ECharts 数据统计'
},
series:[{
name:'访问量',
type:'pie',
radius:'60%',
data:servicedata
}]
});
}
});
}
//初始化echarts实例
var myChart = echarts.init(document.getElementById('chartmain'));
chushihua(myChart);
fuzhi(myChart);
</script>
</html>
这是jsp页面
------------------------------2019年1月13日更新
eclipse---Project---properties----builders,注意这里的勾,特别是javabulder一定要勾上!我就是因为js老是验证不成功,百度说是builder问题,然后就把勾全部去了,所以一直运行以前的方法!!!
第二个问题就是,ssh中json问题的传输。以前用的是jsonlib,现在用fastjson,非常好使,前端不变,后台:
List user = userService.findAll();
String jsonString = FastJsonUtil.toJSONString(user);
HttpServletResponse response = ServletActionContext.getResponse();
FastJsonUtil.**write_json**(response, jsonString);
//输出json
public static void write_json(HttpServletResponse response,String jsonString)
{
response.setContentType("application/json;utf-8");
response.setCharacterEncoding("UTF-8");
try {
response.getWriter().print(jsonString);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
第三个问题就是map集合中,put方法,value相同,有可能是会覆盖key