<body>
<div id="chart" style="width: 580px;height: 420px;margin: 0 auto;border: 1px solid gray;"></div>
<div>
<form id="form1"name="form1" method="get" onSubmit="queryall();">
<fieldset>
<legend>查询条件</legend>
日期:<input type="text" name="DeviceStatus.date" />
班次:<input type="text" name="DeviceStatus.shiftWork" />
生产线:<input type="text" name="DeviceStatus.line" />
<input type="submit" name="查询" value="submit">
</fieldset>
</form>
</div>
<script type="text/javascript" src="resource/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="resource/js/echarts-all.js"></script>
<script type="text/javascript">
jQuery(function queryall($) {
var echart = echarts.init($("#chart")[0]);
var data1=$('#form1').serialize();
var categories = [];
var values = [];
document.forms.form1.action = "deviceStatus_list";
// 同步执行
$.ajaxSettings.async = false;
$.getJSON('deviceStatus_list',data1,function (json) {
console.info("wwwwwwwwwwwwwwwww");
categories = json.categories;
values = json.values;
});
console.info("aaaaaaaa");
var option = {
tooltip: {
show: true
},
legend: {
data: ['问题原因']
},
xAxis: [
{
type: 'category',
data: categories
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
'name': '问题原因',
'type': 'bar',
'data': values
}
]
};
echart.setOption(option);
});
</script>
</body>
拼接sql的后台代码:
//选择了生产线
if(deviceStatus.getLine()!=null){
sql.append(" and statu1.line =?");
params.add(deviceStatus.getLine());
System.out.println("-----dao--line----"+deviceStatus.getLine());
}
//选择了班次
if(deviceStatus.getShiftWork()!=null){
sql.append(" and statu1.shiftWork =?");
params.add(deviceStatus.getShiftWork());
System.out.println("-----dao--shift----"+deviceStatus.getShiftWork());
}
//选择了日期
if(deviceStatus.getDate()!=null){
sql.append(" and statu1.date =?");
params.add(deviceStatus.getDate());
}
sql.append(" GROUP BY stop1.equipmentFailure");
if(params.size()==0){
list= this.getHibernateTemplate().find(sql.toString());
}else{
Query query=session.createQuery(sql.toString());
query.setParameter(0, params.get(0));
query.setParameter(1, params.get(1));
query.setParameter(2, params.get(2));
list=query.list();
}
``
在这里,我要将表单参数作为条件传入sql中,当有这个参数时,就拼接一条 sql。
但当我没有提交表单时会报错。debug了一下,,发现拼接sql时会去拼接“班次”和
“生产线”这两个条件下的sql。但此时,这两个条件应该为空啊。在action中打印
System.out.println("------------"+deviceStatus.getLine());
System.out.println("------------"+deviceStatus.getShiftWork());
System.out.println("------------"+deviceStatus.getDate());
时,deviceStatus.getLine()和deviceStatus.getShiftWork()没有输出。
deviceStatus.getDate()为null。
求问怎么解决啊,,就是想在不选择条件的情况下,他就不拼接sql 。选择了条件就拼接对应的sql。
是不是漏掉了 ""空字符串的判断