问题描述
body中部分代码如:<center><font size="4" color="red">吊灯</font> <input type="button" id="diaodeng" value=<%=state[0]%> onclick="dianji1()"><br><br><br><br></center>script中的的代码如下:function dianji1(){ var abc=document.getElementById("diaodeng"); if(abc.value=="on"){ abc.value="off"; } else{ abc.value="on"; } }要求是通过点击按钮能够调用java类中的方法从而修改数据库中的内容
解决方案
$("button").click(function(){ $.post("/foo/usr/11",function(data){ });});jquery post方法调用java方法修改数据库
解决方案二:
这取决于你的运行环境,大致分为如下:1. 如果你js是运行在 java虚拟机之上,那么直接调用就行2. 如果你js运行在浏览器上,可以参考 RPC ,比如 dwr 这种东西说白了就是这种实现的一种3. rmi
解决方案三:
1. 使用DWR框架2. 使用AJAX方式
解决方案四:
这是我自己做的 $.sjw.ajax( { className: "me.jarvis.simplejweb.demo.ajax.DemoAjax", method: "testCall", param: {demoInt: 1, demoString: "s"}, success: function (result) { alert(result.demoDate) } });java类里这么写public class DemoAjax{ private Integer demoInt; private String demoString; private Date demoDate; public void testCall() { //实现代码 } public Integer getDemoInt() { return demoInt; } public String getDemoString() { return demoString; } public Date getDemoDate() { return demoDate; } public void setDemoDate(Date demoDate) { this.demoDate = demoDate; } public void setDemoInt(Integer demoInt) { this.demoInt = demoInt; } public void setDemoString(String demoString) { this.demoString = demoString; }}只要有get的,就会返回到回调函数怎么做自己可以试试,思想就是这样的,代码不到100行
解决方案五:
想在js中直接调用java方法都不可能;我们只能借助js中调用远端服务的方式实现间接使用;有几种比较好的方式:一、通过DWR框架,这个虽也是基于AJAX,但其使用起来感观上感觉直接调用JAVA方法一样;二:使用传统的一些JS框架,如jquery,prototype,moontools等;希望以上这些可以帮助你;
解决方案六:
通过javascript或者js框架提交get或者post请求到java的控制层组件,然后由组件进行分发到对应的处理类,调用对应的方法,也可以通过dwr,直接异步调用对应的java的类的方法
解决方案七:
简单的可采用Jquery的Ajax和JSON,可以参考我的博客文章http://quarterlifeforjava.iteye.com/blog/2024336
解决方案八:
在你的if判断中可以加入ajax的请求。有$.post和$.ajax。比如,你想在等于on的时候去提交请求,并且把on以参数方式提交后台。function dianji1(){ var abc=document.getElementById("diaodeng"); if(abc.value=="on"){ $.ajax({url: '../../', //你的请求路径type: 'POST', //提交方式,用Post即可。data:{diaodeng:"on"}, //提交参数success: function(result){//这里面是处理返回的结果,如果你没有对结果处理的业务可以不写。或者如果,你后台返回的true,那么判断为true,就可以吧value变更为off if(result == 'true'){ abc.value="off"; } } }); } else{ abc.value="on"; } }
解决方案九:
function dianji1(){ var abc=document.getElementById("diaodeng"); if(abc.value=="on"){ abc.value="off"; } else{ abc.value="on"; } } 在你的if判断中可以加入ajax的请求。有$.post和$.ajax。比如,你想在等于on的时候去提交请求,并且把on以参数方式提交后台。$.ajax({url: '../../', //你的请求路径type: 'POST', //提交方式,用Post即可。data:{diaodeng:"on"}, //提交参数success: function(result){} });
解决方案十:
Jquery Ajax后台简单交互$.get(url, params, callback)用GET方式请求装入远程页面返回值:XMLHttpRequest参数:url (String):装入页面的URL地址params (Map):(可选)发送到服务端的键/值对参数callback (Function):(可选)当远程页面装入完成时执行的函数如果您需要带参数只需要$.get("get.html",{参数名称1:"参数1值",参数名称2:"参数2值"},function(data){$("#show").html(data);})$.post(url, params, callback)用HTTP POST方式装入一个远程页面返回值:XMLHttpRequest参数:url (String):装入页面的URL地址params (Map):(可选)发送到服务端的键/值对参数callback (Function):(可选)当数据装入完成时执行的函数范例 Html<script src="js/jquery-1.4.4.min.js" type="text/javascript"></script><script type="text/javascript"> function info(){ $.ajax({ type:"POST", url:"UserPort/Default.aspx", data:{Name:$("#txtUserName").val(),Pwd:$("#txtPwd").val()}, beforeSend:function(){$("#message").html("载入中…");}, success:function(data){ $("#message").html(decodeURI(data)); } }); }</script><div> 账号:<input type="text" id="txtUserName" /><br /> 密码:<input type="text" id="txtPwd" /><br /> <input type="button" value="获取" onblur="info();" /><br /> <label id="message"> </label></div> Default.aspx.csusing System;public partial class UserPort : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { System.Threading.Thread.Sleep(2000); Response.Write("账号: " + Request["UserName"] + ",密码:"+Request["Pwd"]+"(来源于服务器端)"); }}
解决方案十一:
一般这种设计是 ajax 实现的,你可以参考jquery 的ajax
解决方案十二:
调用不了,一个在客户端一个在服务器怎么调用,只能请求服务器去执行,请求的方式正如楼下们的回答
解决方案十三:
function createXMLHttp() { var XmlHttp; if (window.ActiveXObject) { var arr=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"]; for(var i=0;i<arr.length;i++) { try { XmlHttp = new ActiveXObject(arr[i]); return XmlHttp; } catch(error) { } } } else { try { XmlHttp=new XMLHttpRequest(); return XmlHttp; } catch(otherError) { } } } function xmlPost() { var xmlHttp = createXMLHttp(); var url= 你的Action地址 xmlHttp.open('GET',url,true); xmlHttp.onreadystatechange = function() { if(xmlHttp.readyState == 4 && xmlHttp.status == 200) { var result = xmlHttp.responseText; if (result && result.length > 0){ result = result.split(','); var left; for (var i=0; i<result.length; i++){ left = document.getElementById('left_' + result[i].split(':')[0]); if (left){ left.innerHTML = result[i].split(':')[1]; } } } } } xmlHttp.send(''); }
解决方案十四:
楼下的赞同,同意的你也可以用Ajax,或者直接$("button").click(function(){ //直接跳转 window,location.href='进入的action地址,在action里面进行数据操作,以及去service或者dao层去修改数据';});