| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549 |
- <%@ page import="ss.serv.ServC" %>
- <%@ page import="ss.dev.DevC" %>
- <%@ page import="ss.AppC" %>
- <%@ page import="java.util.HashSet" %>
- <%@ page import="com.google.gson.Gson" %>
- <%@ page import="java.util.Set" %>
- <%@ page import="java.util.HashMap" %>
- <%@ page import="java.util.Map" %>
- <%@ page import="java.io.File" %>
- <%@ page import="biz.ssdev.SsdevClientC" %>
- <%-- 去掉,去掉 basePath(String),直接用 /page/ = AppC.PAGE_path。Lin
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
- <jsp@directive.page import="java.io.*"/>
- <jsp@directive.page import="wd.core.web.service.ServiceConst"/>
- <jsp@directive.page import="wd.core.web.WdDevLoginServlet"/>
- <jsp@directive.page import="com.google.gson.Gson;"/>
- <@%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %@>
- --%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <%-- 去掉,去掉 basePath(String),直接用 /page/ = AppC.PAGE_path。Lin
- <base href="<%=basePath%>">
- <title>My JSP 'index.jsp' starting page</title>
- --%>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <%-- 改。Lin
- <link href="/wd/theme/standard/style.css" rel="stylesheet" type="text/css"> --%>
- <link href="/skin/ssdev/style.css" rel="stylesheet" type="text/css">
- <js.ss file="/ss/json2.js"/> <%-- ="wd/js/json2.js"。Lin --%>
- <js.ss file="/ss/lhgdialog/lhgcore.min.js"/> <%-- ="/wd/js/lhgdialog/lhgcore.min.js"。Lin --%>
- <js.ss file="/ss/lhgdialog/lhgdialog.min.js"/> <%-- ="/wd/js/lhgdialog/lhgdialog.min.js"。Lin --%>
- <js.ss file="/ss/lhgdialog/lhgdialogUtil.js"/> <%-- ="/wd/js/lhgdialogUtil.js"。Lin --%>
- <js.ss file="/ss/Geometry.js"/> <%-- ="/wd/js/Geometry.js"。Lin --%>
- <js.ss file="/ss/common.js"/> <%-- ="wd/js/common.js"。Lin --%>
- <js.ss file="/ss/jquery/jquery-1.7.2.min.js"/> <%-- ="/wd/js/jquery-1.6.2.min.js"。Lin --%>
- <script type="text/javascript">
- /// 增加,来自 HDDev_scgl:servicesTest.jsp。Lin
- <%
- /* 改,去掉 WdDevLoginServlet.setCurrApp(,改用 session."pxmh"/"pxmMc" 等。Lin
- String app = WdDevLoginServlet.getCurrApp();
- */ String app = String.valueOf(session.getAttribute("pxmh"));
- String appsPath = session.getServletContext().getRealPath("<%=SsdevClientC.DEBUG_baseDir%>"+ app); // ("wd/debug/"+。Lin
- File file = new File(appsPath);
- out.write("var debugInfo = {};");
- /* 改。Lin
- if(!file.exists()){
- }else{
- */if(file.exists()){
- Map<String,Set<String>> debugMap = new HashMap<>();
- File[] fileArr = file.listFiles();
- for(File f : fileArr){
- String fileName = f.getName();
- //System.out.println("fileName:"+fileName);
- if(!fileName.contains("$")) continue;
- String[] nameArr = fileName.split("\\$");
- String serviceName = nameArr[0];
- String debugName = nameArr[1];
- Set<String> set = debugMap.get(serviceName);
- if(null==set){
- set = new HashSet<String>();
- debugMap.put(serviceName,set);
- }
- set.add(debugName);
- }
- Gson gson = new Gson();
- String debugInfo = gson.toJson(debugMap);
- out.write("debugInfo = "+debugInfo+";");
- }
- %>
- ///
- var requestRowIndex = 0;
- var sessionRowIndex = 0;
- function initRequestParameter(pjson){
- for(var key in pjson){
- var nameV = key;
- var valueVArr = pjson[key];
- for(var i=0;i<valueVArr.length;i++){
- var valueV = valueVArr[i];
- insertTr('requestParametersTable',nameV,valueV);
- }
- }
- }
- function insertTr(tableId,nameV,valueV){
- var table = document.getElementById(tableId);
- var rowIndex = table.rows.length;
- var tr = table.insertRow(rowIndex);
- var keyTd = tr.insertCell(0);
- var valueTd = tr.insertCell(1);
- var optionTd = tr.insertCell(2);
- var keyInput = document.createElement('input');
- keyInput.type = 'text';
- keyInput.name = 'key';
- keyInput.size = 20;
- keyInput.id = 'key_'+requestRowIndex;
- if(nameV){keyInput.value = nameV};
- keyTd.appendChild(keyInput);
- var valueInput = document.createElement('input');
- valueInput.type = 'text';
- valueInput.name = 'value';
- valueInput.size = 80;
- valueInput.id ='value_'+requestRowIndex;
- if(valueV){valueInput.value = valueV};
- valueTd.appendChild(valueInput);
- var delButton = document.createElement('input');
- delButton.type = 'button';
- delButton.name = 'delButton';
- delButton.value = '删除';
- delButton.className = 'test-list-button';
- optionTd.appendChild(delButton);
- delButton.onclick = function(){
- table.deleteRow(tr.rowIndex);
- }
- requestRowIndex++;
- }
- function buildForm(actionUrl){
- var requestParametersJson = {};
- var div = document.getElementById('requestParametersDiv');
- var _form = document.createElement('form');
- _form.action = actionUrl;
- _form.method = 'post';
- div.appendChild(_form);
- for(var i=0;i<requestRowIndex;i++){
- //--------------填充参数Json start-------------------
- var keyId = 'key_'+i;
- var valueId = 'value_'+i;
- var keyInput = document.getElementById(keyId); if(!keyInput) continue;
- var valueInput = document.getElementById(valueId);
- var keyV = keyInput.value;
- var valueV = valueInput.value;
- if(!requestParametersJson[keyV]){
- requestParametersJson[keyV]= new Array(valueV);
- }else{
- var subArr = requestParametersJson[keyV];
- subArr.push(valueV);
- }
- //--------------填充参数Json end-------------------
- //--------------生成隐藏表单 start-------------------
- generateHiddenForm(_form,keyV,valueV);
- //--------------生成隐藏表单 end-------------------
- }
- var jsonStr = JSON.stringify(requestParametersJson);
- //参数Json表单
- generateHiddenForm(_form,'wd_serviceTest_rp',jsonStr);
- //参数Json表单name
- //var rp_name = document.getElementById('rp_name').value;
- //generateHiddenForm(_form,'wd_serviceTest_rp_name',rp_name);
- //session Xml
- var wd_serviceTest_sa_xmlName = "";
- for(var i=0;i<sessionRowIndex;i++){
- var xmlNameTd = document.getElementById('xml_'+i);
- if(xmlNameTd){
- wd_serviceTest_sa_xmlName += xmlNameTd.innerHTML + ",";
- }
- }
- //生成隐藏表单 wd_serviceTest_sa_xmlName
- generateHiddenForm(_form,<%=SsdevClientC.REQ_sessXmlFileName%>,wd_serviceTest_sa_xmlName); // ,'wd_serviceTest_sa_xmlName',。
- //生成隐藏表单
- generateHiddenForm(_form,'<%=ServC.URL_ssServ%>',g('serviceName').value||g('serviceName2').value); // ,'<@%=ServiceConst.SERVICE_NAME%>',。Lin
- generateHiddenForm(_form,'<%=DevC.DEV_pageUrl%>',g('resultPage').value); // ,'<@%=ServiceConst.WD_DEV_OUTPUT_PAGE%>',。Lin
- //alert('jsonStr:'+jsonStr);
- return _form;
- }
- function generateHiddenForm(_form,name,value){
- var hiddenInput = document.createElement('input');
- hiddenInput.type='hidden';
- hiddenInput.name = name;
- hiddenInput.value = value;
- _form.appendChild(hiddenInput);
- }
- function choiceRequestParameterFromHistory(){
- var url = '<%=basePath%>wd/servicesTest/requestParameterList.jsp';
- var title = '从历史中选择request的Parameter参数';
- openDialog( 's_001', url , title);
- }
- function choiceSessionAttributesFromXml(){
- /* 改。Lin
- * 改用 <serv.ss,sessionAttributesList.jsp 里的程序移到 SsdevClientServ.initSessSel() 了
- * 去掉 basePath(String),直接用 /page/ = AppC.PAGE_path。Lin
- var url = '<@%=basePath%>wd/servicesTest/sessionAttributesList.jsp';
- */ var url = "<serv.ss name='ssdevClient_initSessSel' dest='ssdevClient_sessParmList'/>";
- var title = '选择Xml文件设置session的Attribute参数';
- openDialog( 's_001', url , title);
- }
- function initChoiceXml(fileName){
- var table = document.getElementById('sessionAttributesTable');
- var rowIndex = table.rows.length;
- var tr = table.insertRow(rowIndex);
- var nameTd = tr.insertCell(0);
- var optionTd = tr.insertCell(1);
- nameTd.id = "xml_"+sessionRowIndex;
- nameTd.innerHTML = fileName;
- var delButton = document.createElement('input');
- delButton.type = 'button';
- delButton.name = 'delButton';
- delButton.value = '删除';
- delButton.className = 'test-list-button';
- optionTd.appendChild(delButton);
- delButton.onclick = function(){
- table.deleteRow(tr.rowIndex);
- }
- sessionRowIndex++;
- }
- function test(){
- var tip = checkNull('serviceName','服务名');
- if(tip){
- tip = checkNull('serviceName2','服务名2');
- }
- tip += checkNull('resultPage','结果页面');
- if(''!=tip){
- alert(tip);
- return;
- }
- /* 改,去掉 mid.jsp,改为 <serv.ss name= dest=。Lin
- * mid.jsp 移到 SsdevClientServ.runServ(),改为服务 -- 都是程序
- * 用 HDDev_scgl: 的 mid.jsp
- var actionUrl = '/wd/servicesTest/mid.jsp';
- */ var actionUrl = "<serv.ss name='ssdevClient_runServ'/>";
- var _form = buildForm(actionUrl);
- _form.submit();
- }
- /// 增加,来自 HDDev_scgl:servicesTest.jsp。Lin
- function initDebugInfo(){
- debugInfo = debugInfo || {};
- var serviceNameSel = g('serviceName');
- serviceNameSel.options.length = 0;
- for(var serviceName in debugInfo){
- addOption(serviceNameSel,serviceName,serviceName); // 应该在 common.js。Lin
- }
- }
- function addEvent(){
- g('serviceName').onchange = serviceName_onchange;
- g('createDebug').onclick = createDebug;
- g('debugName').onchange = debugName_onchange;
- }
- function serviceName_onchange(){
- var serviceNameSel = g('serviceName');
- var debugNameSel = g('debugName');
- var serviceName = serviceNameSel.value;
- var debugNameArr = debugInfo[serviceName] || [];
- debugNameSel.options.length = 0;
- for(var i=0;i<debugNameArr.length;i++ ){
- var debugName = debugNameArr[i];
- addOption(debugNameSel,debugName,debugName);
- }
- debugName_onchange();
- }
- function debugName_onchange(){
- /* 改,$ 改为 _。Lin
- var debugFileName = g('serviceName').value+'$'+g('debugName').value;
- */ var debugFileName = g('serviceName').value+'_'+g('debugName').value;
- $.ajax({
- /* 改,去掉 apps.jsp,移到 SsdevClientServ 里 -- 都是程序。Lin
- url: "<@%=path%>/wd/apps/apps.jsp?method=getDebugInfo",
- */ url: "<serv.ss name='ssdevClient_rdServDebugParm'/>",
- type: "POST",
- dataType:"text",
- data: {"debugFileName":encodeURI(debugFileName)},
- /* 改。Lin
- * 统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData
- * 增加错误处理
- success: function(msg){
- var msg = msg.trim();
- */
- success: function(data){
- if (data.ssCode != 0) {
- alert(data.ssMsg);
- return;
- }
- var msg = data.ssData;
- eval("var debugJson = "+msg);
- var requestP = debugJson['requestP'];
- var sessionP = debugJson['sessionP'];
- var page = debugJson['page'];
- eval("var requestJson = "+requestP);
- eval("var sessionJson = "+sessionP);
- clearTable(g('requestParametersTable'),2);
- clearTable(g('sessionAttributesTable'),2);
- initRequestParameter(requestJson);
- if(sessionJson['name']){
- var sessionNameArr = sessionJson['name'];
- for(var i=0;i<sessionNameArr.length;i++){
- initChoiceXml(sessionNameArr[i]);
- }
- }
- g('resultPage').value = ''!=page ? page : '<%=AppC.PAGE_path%>ssdevClient/ssdevClient_servResult.jsp'; // : '/wd/page/result.jsp'。Lin
- }
- });
- }
- function createDebug(){
- var tip = checkNull('newServiceName','服务名'); // 应该在 common.js。Lin
- tip += checkNull('newDebugName','调试名'); // 应该在 common.js。Lin
- //tip +=checkDeugName(g('newServiceName').value,g('newDebugName').value);
- if(''!=tip) {
- alert(tip);
- return;
- }
- var requestParametersJson = {};
- for(var i=0;i<requestRowIndex;i++){
- //--------------填充参数Json start-------------------
- var keyId = 'key_'+i;
- var valueId = 'value_'+i;
- var keyInput = document.getElementById(keyId); if(!keyInput) continue;
- var valueInput = document.getElementById(valueId);
- var keyV = keyInput.value;
- var valueV = valueInput.value;
- if(!requestParametersJson[keyV]){
- requestParametersJson[keyV]= new Array(valueV);
- }else{
- var subArr = requestParametersJson[keyV];
- subArr.push(valueV);
- }
- //--------------填充参数Json end-------------------
- }
- var requestP = JSON.stringify(requestParametersJson);
- var sessionPJson = {};
- for(var i=0;i<sessionRowIndex;i++){
- var xmlNameTd = document.getElementById('xml_'+i);
- if(xmlNameTd){
- var nameArr = sessionPJson['name'];
- if(!nameArr){
- nameArr = [];
- }
- nameArr.push(xmlNameTd.innerHTML);
- sessionPJson['name'] = nameArr;
- }
- }
- var sessionP = JSON.stringify(sessionPJson);
- var newServiceName = g('newServiceName').value;
- var newDebugName = g('newDebugName').value;
- var page = g('resultPage').value;
- $.ajax({
- /* 改,去掉 apps.jsp,移到 SsdevClientServ 里 -- 都是程序。Lin
- url: "<@%=path%>/wd/apps/apps.jsp?method=createDebug",
- */ url: "<serv.ss name='ssdevClient_wrServDebugParm'/>",
- type: "POST",
- dataType:"text",
- data: {"newServiceName":newServiceName,"newDebugName":encodeURI(newDebugName),"requestP" : requestP,"sessionP":sessionP,'page':page},
- /* 改,统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData。Lin
- success: function(msg){
- if('success'==msg.trim()){
- */
- success: function(data){
- if (data.ssCode == 0) {
- var arr = debugInfo[newServiceName] || [];
- if(''==checkDeugName(newServiceName,newDebugName)){
- arr.push(newDebugName);
- }
- debugInfo[newServiceName] = arr;
- initDebugInfo();
- g('serviceName').value = newServiceName;
- g('serviceName').onchange();
- g('debugName').value=newDebugName;
- alert('创建调试 '+newDebugName+' 成功!');
- }
- }
- });
- }
- function checkDeugName(newServiceName,newDebugName){
- var result = '';
- if(debugInfo[newServiceName]){
- var debugArr = debugInfo[newServiceName];
- for(var i=0;i<debugArr.length;i++){
- if(newDebugName == debugArr[i]){
- result += '调试名:'+newDebugName+" 已存在!\n";
- break;
- }
- }
- }
- return result;
- }
- onload = function(){
- initDebugInfo();
- addEvent();
- g('serviceName').onchange();
- g('debugName').onchange();
- }
- ///
- $(function(){
- /* 改,参数通过 session 传递 -- 服务 ssdevClient_initServDebug 里写 < ssdevClient_taskList.ss.jsp 里点击 调试 按钮,然后打开本部件。Lin
- $.post("<serv.ss name='ssdevClient_rdServOpt'/>",{},function(data){ // ("/pmsAction.do?action=servicesTestName",。参数通过 session 传递 -- ssdevClient_initServDebug。Lin
- */ $.post("<serv.ss name='ssdevClient_rdServOpt'/>",{},function(data){
- console.log(data);
- $("#serviceName").append('<option value="">请选择</option>');
- for(var i=0;i<data.length;i++){
- $("#serviceName").append('<option value="'+data[i].service+'">'+data[i].service+'---'+data[i].function+'()</option>');
- }
- },"json");
- })
- </script>
- </head>
- <body>
- <div id="requestParametersDiv"></div>
- <%-- 改,去掉 WdDevLoginServlet.setCurrApp(,改用 session."pxmMc"。Lin
- <h1 align="center" style="color: green">测试服务(当前应用:<%=WdDevLoginServlet.getCurrApp() %>)</h1> --%>
- <h1 align="center" style="color: green">调试服务(当前应用:${sessionScope.ssdevPxmMc})</h1>
- <hr color="green" />
- <div class="test">
- <div>
- <table class="test-choose">
- <tr>
- <td>服务名:
- <select id="serviceName" name="serviceName">
- </select>
- <%-- 先去掉,不应该会用到 -- 原手工把项目的服务配置文件拷贝到每个程序员的电脑里,可能更新不及时导致下拉列表里没有。Lin
- <@input id="serviceName2" name="serviceName2" type="text" placeholder="其他服务" title="如果服务不在左列表,可以这里输入"/>
- --%>
- <%-- 放开 "调试名",不能去掉。Lin --%>
- 调试名:
- <select id="debugName" name="debugName">
- </select>
- <%-- --%>
- 结果页面:
- <input type="text" id="resultPage" name="resultPage" size="40" value="<%=AppC.PAGE_path%>ssdevClient/ssdevClient_servResult.jsp"> <%-- ="/wd/page/result.jsp">。Lin --%>
- </td>
- </tr>
- </table>
- </div>
- <div class="test-list-div">
- <div>
- <table class="test-list" id="requestParametersTable">
- <tr>
- <th colspan="3">设置request的parameter参数
- <input type="button" class="test-button" name="czbuton" value="增加" onclick="insertTr('requestParametersTable');" />
- </th>
- </tr>
- <tr>
- <th>name</th>
- <th>value</th>
- <th width="10%">操作</th>
- </tr>
- <TBODY id='trContainer'>
- </TBODY>
- </table>
- </div>
- </div>
- <div class="test-list-div">
- <div>
- <table class="test-list" id="sessionAttributesTable">
- <tr>
- <th colspan="2">设置session的Attribute参数
- <input type="button" class="test-button" name="czbuton" value="选择xml" onclick="choiceSessionAttributesFromXml();" />
- </th>
- </tr>
- <tr>
- <th>name</th>
- <th width="10%">操作</th>
- </tr>
- <TBODY id='trContainer'>
- </TBODY>
- </table>
- </div>
- </div>
- <div>
- <table class="test-choose">
- <tr>
- <td>
- <p><input type="button" class="test-button" name="czbuton" onclick="test();" value="调试" /></p>
- </td>
- </tr>
- </table>
- </div>
- </div>
- <%-- 放开 "调试名",不能去掉。Lin --%>
- <div class="test-list-div">
- <table class="edit">
- <tr>
- <th width="20%">服务名:
- <input id="newServiceName" name="newServiceName" type="text" class="edit-text" id="textfield">
- </th>
- <th width="30%">调试名:
- <input id="newDebugName" name="newDebugName" type="text" class="edit-text" id="textfield">
- </th>
- <td width="20%">
- <input type="button" id="createDebug" name="createDebug" value="保存" class="edit-button"> <%-- ="创 建"。应该含保存。Lin --%>
- </td>
- </tr>
- </table>
- </div>
- <%-- --%>
- </body>
- </html>
|