写了一个HTML文件,里面写了一个js函数printResult(msg),现在需要在一个java类里面调用这个js函数并传参进去,请问应该如何实现html代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My applet 'HelloWorld' starting page</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <SCRIPT type="text/javascript"> function sayHello()
{   

   var aaa=document.rmb.rmb_test.value; 

   //得到转换的值 

   var rmb = document.HelloWorld.sayHello(aaa);

   document.rmb.rmb_result.value = rmb;

   return true; 

}
     function printResult(msg)
{
   document.rmb.rmb_result.value = msg;

   return true;
} </SCRIPT>
<body> <applet code="HelloWorld.class" codebase="./" name="HelloWorld" archive="HttpProcessor.jar" width="0" height="0" MAYSCRIPT> <!--<param name="p0" value="">
          <param name="p1" value="">--> </applet> <form name="rmb"> 输入名字:
<input type="text" name="rmb_test">
<br>
<input type="button" value="SayHello" onclick="sayHello()" />
结果:
<input type="text" name="rmb_result">
<br> </form>
</body>
</html>java类的部分代码如下:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByMimeType("text/javascript");
String script = "function printResult(){document.rmb.rmb_result.value = " + response + ";return true;}";
engine.eval(script);
System.out.println ( "***********4***********" );
Invocable inv = (Invocable) engine;
System.out.println ( "***********5***********" );
String value = String.valueOf(inv.invokeFunction("printResult",response));
System.out.println ( "***********6***********"  + value);运行报错,说找不到document。如果将script换成script = "function printResult(){return ‘test’;}";是可以运行的。
如果是那样的话就是这个函数没办法跟html页面里的input通信啊。
我现在是想要调用html页面里的一个js函数,应该怎么做呢?

解决方案 »

  1.   

    主要就是想实现在java里面控制html页面的input标签显示值
      

  2.   

    代码太长,不看了。
    从js往java传,可以用ajax
    从java往js传,可以用json友情提示,清晰的结构更利于开发和调试。
      

  3.   

    说实话有些代码,还真看不懂!java中调用js,这样看可不可以!
    PrintWriter out = new PrintWriter(response.getWriter());
    out.print("<script language=\"javascript\">");
    你具体的代码!
    out.close();
    return null;
      

  4.   

    控制标签显示不一定要通过后台的java代码,前台通过js或者jQuery就可以做到,所以在做这方面应用的时候,不要无故给服务器施加压力,
      

  5.   

    谢谢大家,已经搞定了~getAppletContext().showDocument ( new URL("javascript:printResult(\""+msg+"\")") );
    用这个就可以调用html里的js函数了