使用 htmlunit 将简单的 POJO 传递给 Javascript
我试图通过使用 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>
我试图传递一个简单的 pojo 对象(getter 和 setter),但它不起作用。
POJO.java
public class POJO{
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name= name;
}
}
我想知道如何将Java中的对象传递给Javascript方法。
I'm trying to render a html by passing a simple POJO as a parameter to the javascript method using htmlunit. I'm not able to find any clear example on this.
I'm using the following java code
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();
}
}
}
Here is the html(pojo_pass.html) it is trying to open
<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>
I'm trying to pass a simple pojo Object (getter and setter) it doesn't work.
POJO.java
public class POJO{
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name= name;
}
}
I would like to know how to pass an object in Java to the Javascript method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JavaScript 没有 JavaBean 的概念。
您需要传递 JavaScript 可以理解的内容:编组 bean(例如 JSON)、字符串等。
JavaScript has no concept of JavaBeans.
You need to pass something JavaScript understands: a marshalled bean (e.g., JSON), strings, etc.