使用htmlunit将简单POJO传递给Javascript

使用htmlunit将简单POJO传递给Javascript,java,javascript,rhino,htmlunit,Java,Javascript,Rhino,Htmlunit,我试图通过使用htmlunit将一个简单的POJO作为参数传递给javascript方法来呈现html。我找不到任何明确的例子 我正在使用以下java代码 TestMain.java public class TestMain { public static void main(String[] args) { final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3); webClient.setJav

我试图通过使用htmlunit将一个简单的POJO作为参数传递给javascript方法来呈现html。我找不到任何明确的例子

我正在使用以下java代码 TestMain.java

public class TestMain {
public static void main(String[] args) {
    final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);
    webClient.setJavaScriptEnabled(true);
            POJO pojo = new POJO();
            pojo.setName("POJO here");                               
        HtmlPage page = null;
    try {                        
              page = webClient.getPage("file:////c://pojo_pass.html");
              page.executeJavaScript("show(" + pojo + ")");                       
    } catch (FailingHttpStatusCodeException e) {
        e.printStackTrace();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }          
   }

}
这是它试图打开的html(pojo_pass.html)

<html>
 <head>
  <script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    function show(pojo) {
        $("#pojo_div").text(pojo.getName());
    }       
</script>
  </head>
   <body>
Text: <div id="pojo_div"></div>
   </body>
</html>

我想知道如何将Java中的对象传递给Javascript方法。

Javascript没有JavaBeans的概念


您需要传递JavaScript能够理解的东西:封送bean(例如JSON)、字符串等。

JavaScript没有JavaBean的概念


您需要传递JavaScript能够理解的东西:一个编组的bean(例如JSON)、字符串等等。

javax.script中的绑定允许我们进行Java对象到JavaScript对象的映射。我正在处理一个dom,所以想知道如何使用htmlunit@Prabhu是 啊如果你把它当作网页以外的东西运行,也许吧。但你不是。您没有通过连接到当前上下文的脚本引擎来运行网页的JavaScript,但我相信htmlunit的脚本引擎(rhino)可以做到这一点。我只是想知道怎么做。@Prabhu您需要相当显著地破解HtmlUnit,AFAIK,将页面的JavaScript上下文与应用程序的上下文绑定,并找出如何将默认上下文与您自己的上下文无缝结合。祝你好运。谢谢你的意见。我想这不需要太多的修改。我在htmlunit(core js)api上做了彻底的搜索,可能会成功。一旦我能够实现输出,我将发布它。javax.script中的绑定允许我们进行Java对象到javascript对象的映射。我正在处理一个dom,所以想知道如何使用htmlunit@Prabhu是 啊如果你把它当作网页以外的东西运行,也许吧。但你不是。您没有通过连接到当前上下文的脚本引擎来运行网页的JavaScript,但我相信htmlunit的脚本引擎(rhino)可以做到这一点。我只是想知道怎么做。@Prabhu您需要相当显著地破解HtmlUnit,AFAIK,将页面的JavaScript上下文与应用程序的上下文绑定,并找出如何将默认上下文与您自己的上下文无缝结合。祝你好运。谢谢你的意见。我想这不需要太多的修改。我在htmlunit(core js)api上做了彻底的搜索,可能会成功。一旦我能够实现输出,我将发布它。
public class POJO{
  public String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name= name;
  }

}