如何将外部HTML加载到JSF中

时间:2013-02-20 07:06:51

标签: jsf

我想打开一个新的JSF页面,显示我通过Web服务中的字符串获取的外部转换HTML,将我自己的提交按钮附加到页面并捕获表单数据以用于我自己的目的(不提交回网络服务)。 目的是通过调用Web服务并以字符串的形式接收转换后的HTML来尝试为我节省大量工作。 如何在JSF中显示此html?使用IFrame不是答案。

2 个答案:

答案 0 :(得分:1)

你总是可以使用简单的javascript来做到这一点,这里你有一个使用jquery的例子:

Writing HTML with jQuery

也;你将需要使用“jQquery对象”访问你的JSF组件,尝试这样的事情:

How to refer to a JSF component Id in jquery?

此致

答案 1 :(得分:1)

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的结果返回给我的支持bean。

我用f:verbatim

在我的视图上渲染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();
        }