我想打开一个新的JSF页面,显示我通过web服务的字符串获得的外部转换HTML,将我自己的提交按钮附加到页面上,并为我自己的目的捕获表单数据(而不是提交回web服务)。这样做的目的是尝试通过调用web服务并以字符串的形式接收转换后的HTML来节省我的大量工作。如何在JSF中显示这个html?使用IFrame不是答案。
您可以始终使用简单的javascript来实现这一点,这里有一个使用jquery的示例:
用jQuery 编写HTML
此外;您将需要使用"jQquery对象"访问JSF组件,请尝试以下操作:
如何在jquery中引用JSF组件Id?
问候,
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String input = null;
while ((input = in.readLine()) != null) {
result = input; //result is String
}
然后我将包含HTML的结果返回给我的backingbean。
我用f:逐字在视图中呈现HTML
connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setAllowUserInteraction(false);
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
connection.connect();
InputStream in = new BufferedInputStream(connection.getInputStream());
Scanner scanner = new Scanner(in, "UTF-8").useDelimiter("\A"); // \A regex ensures that I get the whole stream in one go - Match only at beginning of string (same as ^)
while (scanner.hasNext()) {
result += scanner.next();
}