「js调用java类」java如何调用js
本篇文章给大家谈谈js调用java类,以及java如何调用js对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、使用EXTJS时,在*.js文件中怎么调用Java类中的方法
- 2、jsp 如何调用java类 初学
- 3、webview 远程js调用本地java实现交互怎么做?
- 4、如何在android平台上使用js直接调用Java方法
- 5、在js中怎么调用java类静态方法调用方法
- 6、关于gwt里js调用java代码的问题
使用EXTJS时,在*.js文件中怎么调用Java类中的方法
this.store = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({
method:'POST',
//这里是访问action的路径 也可以是任意文件路径
url:'gridDatafilter.action' }),
reader:new Ext.data.JsonReader({
root:'rows',
totalProperty: 'total',
fields:['Name','Sex','Phone','Email']
})
});
this.body = new Ext.grid.GridPanel({
store:this.store,
stripeRows: true,
loadMask: true,
.
jsp 如何调用java类 初学
不知道你用dwr试过没有,一般在前端调用java类都是使用dwr因为它是专为,从页面调用后台的java类产生的。以HelloWorld为例假设后台有一个实体类HelloWorld
public class HelloWorld {
public String hello(String name){
return "helloworld"+"name="+name+"now time="+new Date().toLocaleString();
}
}
1.引入dwr的jar包
2.将dwr.xml文件copy到web-INF目录下
配置:
dwr
allow
create javascript="HelloWorld" creator="new"
param name="class" value="service.HelloWorld"/param
/create
/allow
/dwr
3.配置web.xml
加入:!-- dwr --
servlet
servlet-namedwr-invoker/servlet-name
servlet-classorg.directwebremoting.servlet.DwrServlet/servlet-class
!-- This should NEVER be present in live --
init-param
param-namedebug/param-name
param-valuetrue/param-value
/init-param
load-on-startup1/load-on-startup
/servlet
servlet-mapping
servlet-namedwr-invoker/servlet-name
url-pattern/dwr/*/url-pattern
/servlet-mapping
4.引入dwr的js,如:
script type='text/javascript' src='dwr/interface/HelloWorld.js'/script
script type='text/javascript' src='dwr/engine.js'/script
script type='text/javascript' src='dwr/util.js'/script
这一步你可以参考dwr的官方文档中的实例,因为这里引入的js,包括目录你都找不到的,所以以往的直接将js文件拖拉到要使用的页面就行不通了,
分别介绍一下引入的三个js文件:
第一个:后缀为HelloWorld.js的估计你也能猜出来了,其实在后台你就是有一个类名就叫HelloWorld的,现在应该明白为什么可以调用后台java类了吧(也就是说有几个java类要调用就有几个这样的引入文件,只需要将HelloWorld名字换为你的另一个要引入的类)。
第二个:固定的写法
第三个:不是必须的,可加可不加,不过它是为了是你操作更方便,一般都会加上。
5.下面就可以在页面调用了:
script type='text/javascript' src='dwr/interface/HelloWorld.js'/script
script type='text/javascript' src='dwr/interface/DepartmentsService.js'/script
script type='text/javascript' src='dwr/engine.js'/script
script type='text/javascript' src='dwr/util.js'/script
script type="text/javascript"
function hello(){
var name = document.getElementById("name").value;
HelloWorld.hello(name,callback);//直接使用引入的名称调用后台类中的hello()方法
}
//回调函数用来获取从后台传递来的参数,或者数据
function callback(date){
alert(date);
}
/script
6.完成
希望能下个dwr的官方jar包里面有好多例子,讲的都很详细的
webview 远程js调用本地java实现交互怎么做?
可以,只要你是用webview打开的,那么不管事远程还是本地,都可以通过webview与app的本地java代码进行交互。没有任何区别。
1、webview必须设置支持Javascript
mWebview.getSettings().setJavaScriptEnabled(true);
2、加进一个回调的代理类JavaScriptInterface,并给它一个调用的名称:ncp
mWebView.addJavascriptInterface(new JavaScriptInterface(), "ncp");
final class JavaScriptInterface {
public int callOnJs() {
return 1000;
}
public void callOnJs2(String mode) {
//TODO
}
}
3、JS页面
script type="text/javascript"
window.onload = function(){
document.getElementById('btn_1').addEventListener('click', onBtnClick, false);
var _int_value = window.ncp.callOnJs();
alert("get int from java:" + _int_value );
}
function onBtnClick() {
window.ncp.callOnJs2("click");
}
/script
接下来就可以调用js方法了,
1、Java调用js方法
mWebView.loadUrl("javascript:onSaveCallback()");
2、JS访问java方法
window.ncp.callOnJs2("click");
如何在android平台上使用js直接调用Java方法
js中需要通过Android的WebView控件来实现js与java相互调用 。
WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:
1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
互联网用:webView.loadUrl("");
本地文件用:webView.loadUrl(""); 本地文件存放在:assets 文件中
3.调用Activity的setContentView( )方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。
uses-permission android:name="android.permission.INTERNET" /
在js中怎么调用java类静态方法调用方法
你这里用的应该是form 表单提交的吧 你的action写跳转的网页就可以了啊 如果想在当前页面接收到跳转页面方法的返回值 可以用session保存一下 在当前页面get一下就好了
关于gwt里js调用java代码的问题
恩哼,javascript里面调用错了下面是摘自google官方的说明:
[instance-expr.]@class-name::method-name(param-signature)(arguments)
instance-expr.
:
must
be
present
when
calling
an
instance
method
and
must
be
absent
when
calling
a
static
method
class-name
:
is
the
fully-qualified
name
of
the
class
in
which
the
method
is
declared
(or
a
subclass
thereof)
param-signature
:
is
the
internal
Java
method
signature
as
specified
at
JNI
Type
Signatures
but
without
the
trailing
signature
of
the
method
return
type
since
it
is
not
needed
to
choose
the
overload
arguments
:
is
the
actual
argument
list
to
pass
to
the
called
method
大致是先要有这个类所在方法的实例,然后调用格式是
实例@类名::方法名(java类型的JNI类型)(参数)
其中,获得实例,也需要用到JNI,调用构造方法,java类型的JNI类型在oracle官网上有对应,多参数之间用逗号隔开
举例
com.test.Test.class下有一个java方法
void
test(float
f,boolean
b,)...
调用格式是(假设instance已经取到)
instance@com.tets.Test::test(FZ)(1.2f,true)
其中instance假设已经通过JNI调用构造方法获得,FZ对应的是float和boolean,(float的JNI对应类型是F,boolean的对应类型的Z)中间没有任何分隔符,后面两个是传的参数
js调用java很复杂,比java调用JS远要复杂的多
更多参考资料,可以去google
gwt官网找
链接我不能发,发了就被吞贴
js调用java类的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java如何调用js、js调用java类的信息别忘了在本站进行查找喔。