将iframe添加到JSF组件

cha*_*hma 6 iframe jsf widget

是否可以从支持bean向JSF组件(RichFaces,PrimeFaces)添加iframe?

我需要在我的主页上嵌入外部网页.用户需要设置此URL.我不能使用jQuery.

我无法找到任何iframe等效的JSF组件.这有什么特别的原因吗?

Bal*_*usC 16

只需使用纯HTML.

<iframe src="#{bean.iframeUrl}"></iframe>
Run Code Online (Sandbox Code Playgroud)

组件不存在的最可能原因是因为在将其包装到JSF组件中时不会提供额外的优势.例如<p>,<br>,<hr>等也有不JSF等同.

  • 而且我很高兴.对我来说,将组件与普通的旧HTML混合的能力使facelets变得如此可爱. (4认同)

Gan*_*mar 5

是的,有可能。我们可以在 xhtml 文件中使用纯 HTML。我已经尝试过了。它运行良好。下面我给出了我的代码。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<f:view locale="#{facesContext.externalContext.requestLocale}">
<h:head>
    <title>
        <h:outputText value="your application title"></h:outputText>
    </title>
    <style type="text/css">
        #imagepgframe { 
            width: 100%;
            height: 100%;
            position: absolute;
        }
        #wrap { 
            width: 100%;
            position: absolute;
            top: 0px; 
            left: 0;
            bottom: 0;
            overflow-y: hidden;
            overflow-x: hidden;
        }
    </style>
</h:head>
<h:body>
    <h:form>
        <div id="wrap"> 
            <iframe id="imagepgframe" name="imagepgframe" frameborder="0" scrolling="auto" src="#{bean.iframeUrl}">
              <p>Your browser does not support iframes.</p>
            </iframe>
        </div>
    </h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)

谢谢。