业务是这样,点击预览按钮之后,传入input的值,后台拼接成一个sql,通过mybatis去查询,并将结果返回给前端。
html:
<a class="btn btn-success medium" id="preview" onclick="preview()">预览</a>
js:处理请求 并显示结果
//预览
function preview() {
var returnTask = editTaskForm.rerunTask.value;
var exceptTasks = editTaskForm.exceptTasks.value;
// var exceptTasks = document.getElementsByName("exceptTasks").values();
$.ajax({
cache: true,
type: "POST",
url: "/base_service/ar_task_manage/preview/ajax",
data: "returnTask="+returnTask+"&exceptTasks="+exceptTasks,
success: function (data) {
if(data == "false") {
alert("无下游任务");
}
else{
var datas = data.split(';');
var begin ="";
var end = "";
var cnt = 0;
while(cnt < 20 && cnt < datas.length) {
begin = begin + datas[cnt++] + '\n';
}
alert(begin);
if(datas.length >= 20) {
while(cnt < datas.length) {
end = end + datas[cnt++] + '\n';
}
alert(end);
}
// var dataset = data.replace(/\;/g, '\n');
}
}
});
}
controller:控制整个流程。想法是把sql和结果都封装到对象中,去查。开始都是list的结果,只不过mybatis中应该是一个对象。
@RequestMapping(value = "/ar_task_manage/preview/ajax", method = RequestMethod.POST)
public void preview(AutoRunManage obj,HttpServletRequest request, HttpServletResponse response) throws IOException, ClassNotFoundException, SQLException {
String returnTask = request.getParameter("returnTask");
String exceptTasks = request.getParameter("exceptTasks");
String[] tasks = returnTask.split(";");
String sql_mid = "";
for(int i = 0; i < tasks.length;i++) {
String[] task_name = tasks[i].split(":");
sql_mid = sql_mid + task_name[0] + ",";
}
sql_mid = sql_mid.substring(0,sql_mid.length()-1);
String sql_value = exceptTasks + "'" + except_after + "'" + sql_mid + "'" ;
request.getSession().setAttribute("sql_request",sql_value);
JsonUtil<AutoRunManage> jsonUtil = new JsonUtil<AutoRunManage>();
obj.setSql_value(sql_value);
List<AutoRunManage> preview_result = autoRunManageService.preview(obj);
String result = "";
if(preview_result.size() == 0) {
jsonUtil.writeResponse(response, Boolean.FALSE.toString());
return;
}
for(int i = 0; i < preview_result.size(); i++) {
result = result + preview_result.get(i).getDownstream_task_name() + ";";
}
result.substring(0,result.length() - 1);
jsonUtil.writeResponse(response, result);
logger.info(result);
}
service声明:
public List<AutoRunManage> preview(AutoRunManage autoRunManage);
serviceImpl:
@Override
public List<AutoRunManage> preview(AutoRunManage autoRunManage) {
return autoRunManageManageDao.preview(autoRunManage);
}
Dao:
public List<AutoRunManage> preview(AutoRunManage obj);
DaoImpl:
@Override
public List<AutoRunManage> preview(AutoRunManage obj) {
return queryList("com.jd.data.manage.dao.AutoRunManageDao.preview", obj);
}
Domain:
private String sql_value;
private String downstream_task_name;
private String upstream_task_name;
mybatis:
<select id="preview" parameterType="com.jd.data.manage.domain.AutoRunManage"
resultType="com.jd.data.manage.domain.AutoRunManage">
${sql_value}
</select>