问题描述:
不会使用JS来进行类似于easyUI的弹出window窗口的功能
解决方案:
1.找到能跳出对话框的js方法,查询这个方法的源码。
1改:实际上使用createwindow("对话框","地址",高度,宽度);即可。
但这样的话没法根据我的需求来定义对话框
2.查询到src/main/webapp/plug-in/login/js/login.js中有一个可以生成对话框的方法
$.dialog({
id: 'LHG1976D',
title: title,
max: false,
min: false,
drag: false,
resize: false,
content: 'url:userController.do?userOrgSelect&userId=' + d.attributes.user.id,
lock:true,
button : [ {
name : okButton,
focus : true,
callback : function() {
iframe = this.iframe.contentWindow;
var orgId = $('#orgId', iframe.document).val();
Login(orgId);
this.close();
return false;
}
}],
close: function(){
window.location.href = actionurl;
}
});
参考这个js方法来生成对话框
3.这个js传的参数时可以通过以下方式获取到的。
3.1方式一:通过springMVC方式来获取
public ModelAndView goHandle(Stringid ,HttpServletRequest req) |
3.2 方式二:通过request来获取
String userId = oConvertUtils.getString(request.getParameter("userId")); |
4.最后返回一个视图
return new ModelAndView("system/user/userOrgSelect"); |
注意:视图参考代码生成器中的xxx-update.jsp来实现,以下是参考:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<!DOCTYPE html>
<html>
<head>
<title>预警监控</title>
<t:base type="jquery,easyui,tools,DatePicker"></t:base>
<script type="text/javascript">
//编写自定义JS代码
</script>
</head>
<body style="overflow-y: hidden" scroll="no">
<t:formvalid formid="formobj" dialog="true" usePlugin="password" layout="table" action="warningMonitoringController.do?doUpdate" tiptype="1" >
<input id="id" name="id" type="hidden" value="${warningMonitoringPage.id }">
<input id="createName" name="createName" type="hidden" value="${warningMonitoringPage.createName }">
<input id="createBy" name="createBy" type="hidden" value="${warningMonitoringPage.createBy }">
<input id="createDate" name="createDate" type="hidden" value="${warningMonitoringPage.createDate }">
<input id="updateName" name="updateName" type="hidden" value="${warningMonitoringPage.updateName }">
<input id="updateBy" name="updateBy" type="hidden" value="${warningMonitoringPage.updateBy }">
<input id="updateDate" name="updateDate" type="hidden" value="${warningMonitoringPage.updateDate }">
<table style="width: 600px;" cellpadding="0" cellspacing="1" class="formtable">
<tr>
<td align="right">
<label class="Validform_label">
预警ID:
</label>
</td>
<td class="value">
<input id="warningId" name="warningId" type="text" style="width: 150px" class="inputxt" value='${warningMonitoringPage.warningId}'>
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">预警ID</label>
</td>
<tr>
<td align="right">
<label class="Validform_label">
预警类型:
</label>
</td>
<td class="value">
<t:dictSelect field="warningType" type="list"
typeGroupCode="warn_type" defaultVal="${warningMonitoringPage.warningType}" hasLabel="false" title="预警类型"></t:dictSelect>
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">预警类型</label>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
预警级别:
</label>
</td>
<td class="value">
<t:dictSelect field="warningLevel" type="list"
typeGroupCode="warn_level" defaultVal="${warningMonitoringPage.warningLevel}" hasLabel="false" title="预警级别"></t:dictSelect>
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">预警级别</label>
</td>
<tr>
<td align="right">
<label class="Validform_label">
预警概要:
</label>
</td>
<td class="value">
<input id="warningSummary" name="warningSummary" type="text" style="width: 150px" class="inputxt" value='${warningMonitoringPage.warningSummary}'>
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">预警概要</label>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
预警时间:
</label>
</td>
<td class="value">
<input id="warningDatetime" name="warningDatetime" type="text" style="width: 150px" class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" value='<fmt:formatDate value='${warningMonitoringPage.warningDatetime}' type="date" pattern="yyyy-MM-dd hh:mm:ss"/>'>
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">预警时间</label>
</td>
<tr>
<td align="right">
<label class="Validform_label">
预警次数:
</label>
</td>
<td class="value">
<input id="warningCount" name="warningCount" type="text" style="width: 150px" class="inputxt" value='${warningMonitoringPage.warningCount}'>
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">预警次数</label>
</td>
</tr>
<tr>
<td align="right">
<label class="Validform_label">
处理状态:
</label>
</td>
<td class="value">
<t:dictSelect field="handleState" type="list"
typeGroupCode="w_hd_state" defaultVal="${warningMonitoringPage.handleState}" hasLabel="false" title="处理状态"></t:dictSelect>
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">处理状态</label>
</td>
<tr>
<td align="right">
<label class="Validform_label">
处理人:
</label>
</td>
<td class="value">
<input id="handlePerson" name="handlePerson" type="text" style="width: 150px" class="inputxt" value='${warningMonitoringPage.handlePerson}'>
<span class="Validform_checktip"></span>
<label class="Validform_label" style="display: none;">处理人</label>
</td>
</tr>
</table>
</t:formvalid>
</body>
<script src = "webpage/com/jeecg/warningmonitoring/warningMonitoring.js"></script>
5.将对话框中的数据传递到Controller中
实例代码在
src\main\webapp\webpage\com\jeecg\warningmonitoring\warningmonitoringList.js中
function handle(id){
$.dialog({
content: 'url:'+"warningMonitoringController.do?goHandle&id="+id,
lock : true,
width:650,
height:420,
title:"处理",
opacity : 0.3,
cache:false,
okVal: '处理',
ok: function(){
iframe = this.iframe.contentWindow;
saveObj();
return false;
},
cancelVal: '关闭',
cancel: true /*为true等价于function(){}*/
});
}
通过这个Js方法,可以将弹出对话框中的对象进行传递
src\main\webapp\webpage\com\jeecg\warningmonitoring
<t:formvalid formid="formobj" dialog="true" usePlugin="password" layout="table" action="warningMonitoringController.do?doUpdate" tiptype="1" > |
表格形式如上,这是对话框中的页面的表格,必须有action,,提交到哪里
以下是Controller内容
@RequestMapping(params = "doUpdate")
@ResponseBody
public AjaxJson doUpdate(WarningMonitoringEntity warningMonitoring, HttpServletRequest request) {
String message = null;
AjaxJson j = new AjaxJson();
message = "预警监控更新成功";
WarningMonitoringEntity t = warningMonitoringService.get(WarningMonitoringEntity.class,
warningMonitoring.getId());
try {
MyBeanUtils.copyBeanNotNull2Bean(warningMonitoring, t);
warningMonitoringService.saveOrUpdate(t);
systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
} catch (Exception e) {
e.printStackTrace();
message = "预警监控更新失败";
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}
6.弹出消息框
$.messager.show({
title : '消息提醒',
msg : msg,
timeout : 1000 * 6
});