调用接口,需要拼接SOAP包,访问页面的时候不要写localhost,这样会引起跨域的问题,访问不了。
这个jsp页面包括了根据下拉框选择,变更不同的输入条件,用到了jquery的一些文档操作方法。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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>
<base href="<%=basePath%>">
<title>导入导出功能</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">
<jsp:include page="/common/common.jsp"></jsp:include>
<link rel="stylesheet" rev="stylesheet" type="text/css" href="${pageContext.request.contextPath}/skin/default/css/default.css" media="all"/>
<script language="javascript" src="${pageContext.request.contextPath}/js/common.js"></script>
</head>
<body>
<form id="loginform" method="post">
<div class="textbox" id="centerTextbox">
<div class="textbox-header">
<div class="textbox-inner-header">
<div class="textbox-title">
<h1> 元数据信息WebService</h1>
</div>
</div>
</div>
<div class="textbox-header">
<div class="textbox-inner-header">
<div class="textbox-title">
<table id="insertinto" class="commonTable" cellspacing="1">
<tr>
<td class="columnTitle_mustbe">用户名:</td>
<td class="tableContent"><input type="text" id="auth_id"/></td>
<td class="columnTitle_mustbe">密码:</td>
<td class="tableContent"><input type="password" id="auth_pwd"/></td>
</tr></table>
<hr><br>写入数据
</div>
</div>
</div></form>
<form id="writeform" method="post">
<div>
<div>
<table id="insertinto" class="commonTable" cellspacing="1">
<tr>
<td class="columnTitle_mustbe">应用范围:</td>
<td class="tableContent"><input type="text" id="Wyyfw"/></td>
<td class="columnTitle_mustbe">应用范围名称:</td>
<td class="tableContent"><input type="text" id="Wyyfwmc"/></td>
</tr>
<tr>
<td class="columnTitle_mustbe">参数标识:</td>
<td class="tableContent"><input type="text" id="Wcsbs"/></td>
<td class="columnTitle_mustbe">是否启用:</td>
<td class="tableContentAuto">
<select id="Wsfqy" ><option value="0">是</option><option value="1">否</option></select>
</td>
</tr>
<tr>
<td class="columnTitle_mustbe">参数名称:</td>
<td class="tableContent"><input type="text" id="Wcsmc"/></td>
<td class="columnTitle_mustbe">是否有子元素:</td>
<td class="tableContentAuto">
<select id="Wsfyzys" ><option value="0">没有</option><option value="1">有</option></select>
</td>
</tr>
<tr><td class="columnTitle_mustbe">所属项目:</td>
<td class="tableContentAuto">
<select id="Wssxm" ><option value="-1">请选择</option><option value="1">档案管理</option><option value="2">省经信委</option></select>
</td>
</tr>
<tr>
<td class="tableContent" align="center" >
<input type="button" name="btnSubmit" value="添加" onclick="insert();"/>
</td>
</tr>
</table>
</div>
</div>
<div class="textbox-header">
<div class="textbox-inner-header">
<div class="textbox-title">
<br> 查询数据
</div>
</div>
</div>
<div>
<div>
<table id="check" class="commonTable" cellspacing="1">
<tr id="oidtr">
<td class="columnTitle_mustbe">操作类型:</td>
<td class="tableContent">
<select id="czlx" name="oid" >
<option value="qxz">请选择</option>
<option value="gjidcx">根据编号</option>
<option value="gjfwmccx">根据范围</option>
<option value="gjfwmccxNz">根据范围(Nz)</option>
<option value="gjcsbscx">根据标识</option>
<option value="gjcsbscxNz">根据标识(Nz)</option>
<option value="gjxmcx">根据项目</option>
<option value="gjxmqycx">根据项目和启用</option>
<option value="cxhyzys">查询含有子元素</option>
</select></td>
<td class="columnTitle_mustbe"> </td>
<td class="tableContent" align="center">
<input type="button" name="btnSubmit" value="查询" onclick="findMsg();"/>
</td>
</tr>
</table><br>
<table id="write" class="commonTable" border="1" cellpadding="3" cellspacing="0">
<tr id="biaoti"><td>编号</td><td>应用范围</td><td>应用范围名称</td><td>参数标识</td><td>参数名称</td><td>是否启用</td><td>是否有子元素</td><td>所属项目</td></tr>
</table>
</div>
</div>
</div>
</form>
</body>
<script type="text/javascript">
//var xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
/* var xmlHttpRequest;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlHttpRequest=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
} */
function insert(){
$("#loginform").form("enableValidation");
$("#writeform").form("enableValidation");
if($("#loginform").form("validate")&&$("#writeform").form("validate")){
var auth_id=document.getElementById("auth_id").value;
var auth_pwd=document.getElementById("auth_pwd").value;
var url = "http://192.168.0.120:8080/YSJGLTest/cxf/metaServiceImpl";
var body="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:q0=\"http://service.main.sdsj.com/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
+"<soapenv:Header><auth><auth_id>"+auth_id+"</auth_id><auth_pwd>"+auth_pwd+"</auth_pwd></auth></soapenv:Header>"
+"<soapenv:Body><q0:innert><yyfw>"+document.getElementById("Wyyfw").value+"</yyfw> <yyfwmc>"+document.getElementById("Wyyfwmc").value+"</yyfwmc> <csbs>"+document.getElementById("Wcsbs").value+"</csbs> "
+"<csmc>"+document.getElementById("Wcsmc").value+"</csmc> <sfqy>"+document.getElementById("Wsfqy").value+"</sfqy> <cslb>"+document.getElementById("Wssxm").value+"</cslb> <sfyzys>"+document.getElementById("Wsfyzys").value+"</sfyzys> </q0:innert></soapenv:Body></soapenv:Envelope>";
$.ajax({
url:url,
type:"POST",
data:body,
success:function(data){
alert("返回信息代码:"+data.getElementsByTagName("return")[0].innerHTML);
},
error:function(data){
var parser=new DOMParser();
var xmlDoc=parser.parseFromString(data.responseText,"text/xml");
alert(xmlDoc.getElementsByTagName("faultstring")[0].innerHTML);
}
});
}
}
function findMsg(){
$("#loginform").form("enableValidation");
$("#writeform").form("disableValidation");
if($("#loginform").form("validate")){
var cslx = document.getElementById("czlx").value;
if(cslx=="qxz"){alert("请先选择操作类型填写信息!");
return;
}
var id ="";
var yyfw="";
var yyfwmc="";
var csbs="";
var csmc="";
var sfqy="";
var sfyzys="";
var cslb="";
if(document.getElementById("id")!=null){
id = document.getElementById("id").value;}
if(document.getElementById("yyfw")!=null){
yyfw = document.getElementById("yyfw").value;}
if(document.getElementById("yyfwmc")!=null){
yyfwmc = document.getElementById("yyfwmc").value;}
if(document.getElementById("csbs")!=null){
csbs = document.getElementById("csbs").value;}
if(document.getElementById("csmc")!=null){
csmc = document.getElementById("csmc").value;}
if(document.getElementById("sfqy")!=null){
sfqy = document.getElementById("sfqy").value;}
if(document.getElementById("sfyzys")!=null){
sfyzys = document.getElementById("sfyzys").value;}
if(document.getElementById("cslb")!=null){
cslb = document.getElementById("cslb").value;}
var auth_id=document.getElementById("auth_id").value;
var auth_pwd=document.getElementById("auth_pwd").value;
var body="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" "
+"xmlns:q0=\"http://service.main.sdsj.com/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
+"<soapenv:Header><auth><auth_id>"+auth_id+"</auth_id><auth_pwd>"+auth_pwd+"</auth_pwd></auth></soapenv:Header>"
+" <soapenv:Body><q0:find><oid>"+cslx+"</oid> <id>"+id+"</id> <yyfw>"+yyfw+"</yyfw> <yyfwmc>"+yyfwmc+"</yyfwmc> <csbs>"+csbs+"</csbs> <csmc>"+csmc+"</csmc> <sfqy>"+sfqy+"</sfqy> <cslb>"+cslb+"</cslb> <sfyzys>"+sfyzys+"</sfyzys> "
+" </q0:find> </soapenv:Body> </soapenv:Envelope>";
var url = "http://192.168.0.120:8080/YSJGLTest/cxf/metaServiceImpl";
/* xmlHttpRequest.open("POST", url);
xmlHttpRequest.setRequestHeader("Content-Type","text/xml;charset=utf-8");
xmlHttpRequest.onreadystatechange = _back;
xmlHttpRequest.send( body ); //SOAP xml */
$.ajax({
url:url,
type:"POST",
data:body,
success:function(data){
//var xml = xmlHttpRequest.responseXML;
$("#biaoti ~ tr").remove();
var ele = data.getElementsByTagName("return");
$.each(ele,function(index,obj){
var sfqyR;
if(obj.getElementsByTagName("sfqy")[0].innerHTML=="0"){sfqyR="是";}else{
sfqyR="否";}
var sfyzysR;
if(obj.getElementsByTagName("sfyzys")[0].innerHTML=="1"){sfyzysR="有";}else{
sfyzysR="没有";}
var ssxmR;
if(obj.getElementsByTagName("cslb")[0].innerHTML=="1"){ssxmR="档案管理";}else{
ssxmR="省经信委";}
$("#write").append("<tr><td class=\"columnTitle_mustbe\">"+obj.getElementsByTagName("id")[0].innerHTML+"</td>"+"<td class=\"columnTitle_mustbe\">"+obj.getElementsByTagName("yyfw")[0].innerHTML+"</td>"
+"<td class=\"columnTitle_mustbe\">"+obj.getElementsByTagName("yyfwmc")[0].innerHTML+"</td>"+"<td class=\"columnTitle_mustbe\">"+obj.getElementsByTagName("csbs")[0].innerHTML+"</td>"+"<td class=\"columnTitle_mustbe\">"+obj.getElementsByTagName("csmc")[0].innerHTML+"</td>"
+"<td class=\"columnTitle_mustbe\">"+sfqyR+"</td>"+"<td class=\"columnTitle_mustbe\">"+sfyzysR+"</td>"+"<td class=\"columnTitle_mustbe\">"+ssxmR+"</td></tr>"
);
});
$("#write").show();
/*var customerContract = ele.getElementsByTagName("csmc")[0].innerHTML;
document.getElementById("test").innerHTML = customerContract; */
},
error:function(data){
var parser=new DOMParser();
var xmlDoc=parser.parseFromString(data.responseText,"text/xml");
alert(xmlDoc.getElementsByTagName("faultstring")[0].innerHTML);
}
});
}
}
/* function _back(){
if(xmlHttpRequest.readystate==4){ //处理完成
if(xmlHttpRequest.status==200){ //成功返回
var xml = xmlHttpRequest.responseXML;
var ele = xml.getElementsByTagName("return")[0];
var customerContract = ele.getElementsByTagName("csmc")[0].text;
document.getElementById("customerContract").innerHTML = customerContract;
}
}
} */
$(document).ready(function(){
$('#Wyyfw').validatebox({
required: true,
missingMessage: '请填写应用范围'
});
$('#Wyyfwmc').validatebox({
required: true,
missingMessage: '请填写应用范围名称'
});
$('#Wcsbs').validatebox({
required: true,
missingMessage: '请填写参数标识'
});
$('#Wcsmc').validatebox({
required: true,
missingMessage: '请填写参数名称'
});
$('#auth_id').validatebox({
required: true,
missingMessage: '请填写用户名'
});
$('#auth_pwd').validatebox({
required: true,
missingMessage: '请填写密码'
});
$("#loginform").form("disableValidation");
$("#writeform").form("disableValidation");
$("#write").hide();
$("#czlx").change(function(){
$("#write").hide();
var cslx = $("#czlx").val();
$("#oidtr ~ tr").remove();
if(cslx=="gjidcx"){ $("#check").append("<tr><td class=\"columnTitle_mustbe\">ID:</td><td class=\"tableContent\"><input type=\"text\" id=\"id\"/></td></tr>"); }
if(cslx=="gjfwmccx"||cslx=="gjfwmccxNz"){ $("#check").append("<tr><td class=\"columnTitle_mustbe\">应用范围名称:</td><td class=\"tableContent\"><input type=\"text\" id=\"yyfwmc\"/></td><td class=\"columnTitle_mustbe\">所属项目:</td> <td class=\"tableContentAuto\"><select id=\"cslb\" ><option value=\"qxz\">请选择</option><option value=\"1\">档案管理</option><option value=\"2\">省经信委</option></select> </td></tr>"); }
if(cslx=="cxhyzys"){ $("#check").append("<tr><td class=\"columnTitle_mustbe\">应用范围名称:</td><td class=\"tableContent\"><input type=\"text\" id=\"yyfwmc\"/></td><td class=\"columnTitle_mustbe\">所属项目:</td> <td class=\"tableContentAuto\"><select id=\"cslb\" ><option value=\"qxz\">请选择</option><option value=\"1\">档案管理</option><option value=\"2\">省经信委</option></select> </td></tr>"); }
if(cslx=="gjcsbscx"||cslx=="gjcsbscxNz"){ $("#check").append("<tr><td class=\"columnTitle_mustbe\">参数标识:</td><td class=\"tableContent\"><input type=\"text\" id=\"csbs\"/></td><td class=\"columnTitle_mustbe\">所属项目:</td> <td class=\"tableContentAuto\"><select id=\"cslb\" ><option value=\"qxz\">请选择</option><option value=\"1\">档案管理</option><option value=\"2\">省经信委</option></select> </td></tr>"); }
if(cslx=="gjxmcx"){ $("#check").append("</tr><tr><td class=\"columnTitle_mustbe\">所属项目:</td> <td class=\"tableContentAuto\"><select id=\"cslb\" ><option value=\"qxz\">请选择</option><option value=\"1\">档案管理</option><option value=\"2\">省经信委</option></select> </td></tr>"); }
if(cslx=="gjxmqycx"){ $("#check").append("</tr><tr><td class=\"columnTitle_mustbe\">所属项目:</td> <td class=\"tableContentAuto\"><select id=\"cslb\" ><option value=\"qxz\">请选择</option><option value=\"1\">档案管理</option><option value=\"2\">省经信委</option></select> </td><td class=\"columnTitle_mustbe\">是否启用:</td> <td class=\"tableContentAuto\"><select id=\"sfqy\" ><option value=\"0\">是</option><option value=\"1\">否</option></select> </td></tr>"); }
});
});
</script>
</html>
本文介绍了如何使用Ajax直接调用WebService,强调了在拼接SOAP包时的注意事项,以及解决跨域问题的方法,特别是在实际操作中避免使用localhost来防止访问限制。同时,内容涉及到在jsp页面中结合jQuery进行动态文档操作,实现下拉框选择改变输入条件的功能。

4128

被折叠的 条评论
为什么被折叠?



