JSF AJax - 如何呈现 URL 的输出

发布于 2024-12-08 10:06:00 字数 229 浏览 1 评论 0原文

我正在尝试使用 JSF / Ajax (a4j) 在同一页面中呈现 URL 的输出,但到目前为止我还没有运气。顺便说一句,我正在使用 RichFaces 4.0。例如,如果用户单击表中的一行(或只是一个按钮),我喜欢在表正下方显示一个与单击的行相关的网页。有没有办法可以使用 Backing Bean 获取相关 URL 并使用 A4J 标签调用该 URL?我搜索了这样的标签或示例代码,但到目前为止我找不到任何。

感谢您的帮助。

I am trying to render the output of an URL in the same page, using JSF / Ajax (a4j) and so far I am having no luck. BTW, I am using RichFaces 4.0. For example, if the User clicks a row in a Table (or just a button), I like to show a web page right below the Table, that is relevant to the row clicked. Is there a way I can get the relevant URL using a Backing Bean and invoke that URL using A4J Tags? I searched for such tags or sample code and so far I could not find any.

Thanks for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南冥有猫 2024-12-15 10:06:00

将外部 URL 的结果嵌入到网页中只能借助 HTML 元素来巧妙地完成。

所以,这应该做

<h:form>
    <h:dataTable value="#{bean.websites}" var="website">
        <h:column>#{website.name}</h:column>
        <h:column>
            <h:commandButton value="show" action="#{bean.setWebsite(website)}">
                <f:ajax render=":website" />
            </h:commandButton>
        </h:column>
    </h:dataTable>
</h:form>
<h:panelGroup id="website">
    <iframe src="#{bean.website.url}"></iframe>
</h:panelGroup>

@ManagedBean
@ViewScoped
public class Bean {

    private List<Website> websites; // +getter
    private Website website; // +getter+setter

    // ...
}

Embedding the result of an external URL in your webpage can only neatly be done with help of a HTML <iframe> element.

So, this should do:

<h:form>
    <h:dataTable value="#{bean.websites}" var="website">
        <h:column>#{website.name}</h:column>
        <h:column>
            <h:commandButton value="show" action="#{bean.setWebsite(website)}">
                <f:ajax render=":website" />
            </h:commandButton>
        </h:column>
    </h:dataTable>
</h:form>
<h:panelGroup id="website">
    <iframe src="#{bean.website.url}"></iframe>
</h:panelGroup>

with

@ManagedBean
@ViewScoped
public class Bean {

    private List<Website> websites; // +getter
    private Website website; // +getter+setter

    // ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文