使用htmlunit将简单POJO传递给Javascript
我试图通过使用htmlunit将一个简单的POJO作为参数传递给javascript方法来呈现html。我找不到任何明确的例子 我正在使用以下java代码 TestMain.java使用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
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;
}
}