我想在一个页面上用无刷新技术实现:当我点按钮后就把我需要的值传struts2的action,然后插入数据据库,要求就是点了按钮后,本页面同时还要查询出刚才的数据
var xmlHttp=false;
function getCustomerInfo(t){ try{
xmlHttp=new XMLHttpRequest();
}catch(trymicrosoft){
try{
xmlHttp=new ActiveXObject(Msxml2.XMLHTTP);
}catch(othermicrosoft){
try{
xmlHttp=new ActiveXObject(Microsoft.XMLHTTP);
}catch(failed){
xmlHttp=false;
}
}
}
if(!xmlHttp){
alert("xmlHttp Error!!");
}
var feelCn=document.getElementById("feelCn").value;
var feelEn=document.getElementById("feelEn").value;
var price=document.getElementById("price").value;
var url="modifyAddDelete!addFeeDetails.action?nid="+t+"&feelCn="+escape(feelCn)+"&feelEn="+escape(feelEn)+"&price="+escape(price);
xmlHttp.open("GET",url,"true");
alert(t+" "+feelCn+" "+feelEn+" "+price);
xmlHttp.onreadystatechange=handlestatechange;
xmlHttp.send(null);
}
function handlestatechange(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
??请问这里要怎么才能取得struts2的Action处理后的结果(就是上面的feelEn,feelCn,price三个值)
//alert("服务器处理完成");
}else if(xmlHttp.status==404){
alert("请求的url不存在");
}else
alert("xmlHttp status is:"+xmlHttp.status);//状态码为200
}
}
function Add(t){
getCustomerInfo(t);
//form1.action="modifyAddDelete!addFeeDetails.action?nid="+t;
//form1.submit();
}
var xmlHttp=false;
function getCustomerInfo(t){ try{
xmlHttp=new XMLHttpRequest();
}catch(trymicrosoft){
try{
xmlHttp=new ActiveXObject(Msxml2.XMLHTTP);
}catch(othermicrosoft){
try{
xmlHttp=new ActiveXObject(Microsoft.XMLHTTP);
}catch(failed){
xmlHttp=false;
}
}
}
if(!xmlHttp){
alert("xmlHttp Error!!");
}
var feelCn=document.getElementById("feelCn").value;
var feelEn=document.getElementById("feelEn").value;
var price=document.getElementById("price").value;
var url="modifyAddDelete!addFeeDetails.action?nid="+t+"&feelCn="+escape(feelCn)+"&feelEn="+escape(feelEn)+"&price="+escape(price);
xmlHttp.open("GET",url,"true");
alert(t+" "+feelCn+" "+feelEn+" "+price);
xmlHttp.onreadystatechange=handlestatechange;
xmlHttp.send(null);
}
function handlestatechange(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
??请问这里要怎么才能取得struts2的Action处理后的结果(就是上面的feelEn,feelCn,price三个值)
//alert("服务器处理完成");
}else if(xmlHttp.status==404){
alert("请求的url不存在");
}else
alert("xmlHttp status is:"+xmlHttp.status);//状态码为200
}
}
function Add(t){
getCustomerInfo(t);
//form1.action="modifyAddDelete!addFeeDetails.action?nid="+t;
//form1.submit();
}
解决方案 »
- struts问题 急急急
- 要长上传之后改图片的大小怎么做用java语言实现
- 求spring+struts2+ibati实际项目代码
- 一道Java填空题
- jsvalidatetion验证框架几个奇怪的现象?
- myeclipse 6.5怎么注册?
- Web Services:服务端是.net的,现在用java开发客户端,但是返回为null,急!
- 初学struts:为什么validator框架不起作用?
- 50分求关于struts方面的电子版书籍
- 怎样实现WEB页面定制短信心服务,如何socket消息传送?
- 旅行社网站如何访问航空公司的票务查询接口提供实时票务查询?基于B/S的!求大虾指点!
- 简单的jsp输出
可以通过XMLDom去解析。XMLDom=new ActiveXObject("Msxml2.DOMDocument");
XMLDom.async=false;
XMLDom.resolveExternals=false;
if(XMLDom.loadXML(xmlHTTP.responseText)){//现在XMLDom就和javascript里的Document类似
feelEn= XMLDom.getElementsByTagName("feelEn")[0].text; //通过dom提供借口获取数据。 }
具体怎么用,你网上自己查
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=GB2312");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().write("{result:"+isExist+"}");
然后AJAX.JS里
response = self.xmlhttp.responseText;
应该可以得到返回值
eval(xmlHttp.responseText);就成了JSON对象.{a:"aaa",b:{c:"ccc"}}这样的东西.
eval('('+xmlHttp.responseText+')');好像是这个,你试试.JSON不要有和JSON-LIB这个慢得可以,SIMPLE-JSON就快不少.
如果只是普通的字符串,你也不需要解析,上面的兄弟已经说了var str=xmlHttp.responseText;就得到了Action print()的内容了
<script>
function DomUtil(){}
DomUtil.initDomDoc = function()
{
var signatures = ["Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","Msxml2.DOMDocument.3.0","Msxml2.DOMDocument","MicroSoft.XmlDom"];
for(var i=0;i<signatures.length;i++)
{
try
{
var domDoc = new ActiveXObject(signatures[i]);
if(domDoc!=null)
{
return domDoc;
}
}
catch(e)
{
alert("Dom初始化失败!")
}
}
}
//根据文件的相对路径的文件名来创建xmlDoc
DomUtil.loadXmlForPath = function(path)
{
var domDoc = DomUtil.initDomDoc();
domDoc.async = false;
domDoc.load(path);
return domDoc;
}
//根据XML格式个字符串来创建xmlDoc
DomUtil.loadXmlForString = function(str)
{
var domDoc = DomUtil.initDomDoc();
domDoc.async = false;
domDoc.loadXML(str);
return domDoc;
}
var xmlDom; //全局的xmlDom对象
//页面初始化的时候加载xml
function load()
{
xmlDom = DomUtil.loadXmlForPath("class.xml");
//得到XML的根元素
var rootElement = xmlDom.documentElement;
// var root = DomUtil.loadXmlForString(rootElement.xml);
$("xmlStr").innerText = rootElement.xml;
//alert(rootElement.xml);
display();
}
function display()
{
var table = document.createElement("table");
table.setAttribute("border",1);
$("tableXml").appendChild(table);
var tHead = table.createTHead();
tHead.style.background = "#12c4dd";
var headerRow =tHead.insertRow(0); //创建头插入第一行
headerRow.insertCell(0).appendChild(document.createTextNode("stuName"));
headerRow.insertCell(1).appendChild(document.createTextNode("stuAge"));
headerRow.insertCell(2).appendChild(document.createTextNode("stuNo"));
var students= xmlDom.getElementsByTagName("student"); //根据标签的名字获得所有的student
// var students = rootElement.childNodes;
for(var i = 0; i < students.length; i++)
{
var tableRow = table.insertRow(i+1); //往table里面插入行(Row)
var stuAtts = students[i].childNodes; //获得所有student的子节点
for(var j = 0;j < stuAtts.length; j++)
{
var stuAtt = stuAtts[j].childNodes[0].nodeValue;
tableRow.insertCell(j).appendChild(document.createTextNode(stuAtt));
}
var stuNo = students[i].attributes[0].value; //获得学号
tableRow.insertCell(stuAtts.length).appendChild(document.createTextNode(stuNo));
}
}
function $(varId)
{
return document.getElementById(varId);
}
</script>
<body onload="load();">
<div id="tableXml"></div>
<hr/>
<div id="xmlStr"></div>
</body>
</html>
<student stuNo="stu01">
<stuName>admin</stuName>
<stuAge> 19 </stuAge>
</student>
<student stuNo="stu02">
<stuName>user</stuName>
<stuAge> 25 </stuAge>
</student>
</class>