【问题标题】:Is there a tag like verbatim, except you can set it to dirty?是否有像逐字一样的标签,除了你可以将它设置为脏?
【发布时间】:2011-06-13 06:22:25
【问题描述】:

我想要的是如下内容:

<f:verbatim> <% out.println("<span id='test'>Data</span>"); %> </f:verbatim>

我希望通过 ajax 重新运行 out.println 代码。但是,当我将该表单设置为脏时,out.println 不会重新运行。

有没有办法解决这个问题,不使用自定义标签?

我需要的是一个标签,比如

<f:writeAsHTML value="#{bean.HTMLproducer}"/>

在 myfaces 或基本 JSF 中是否已经有类似的标签?

【问题讨论】:

    标签: ajax jsp jsf custom-tags


    【解决方案1】:

    只要把它放在f:verbatim 中,没有那个scriptlet

    <f:verbatim>
        <span id="test">Data</span>
    </f:verbatim>
    

    或者直接打印出来(仅适用于 JSF 1.2 或更高版本)

    <span id="test">Data</span>
    

    或者使用h:outputText,因为它无论如何都会呈现&lt;span&gt;

    <h:outputText id="test" value="Data" />
    

    如果 HTML 来自 bean 属性,则使用 h:outputText escape="false"

    <h:outputText value="#{bean.html}" escape="false" />
    

    根据您的功能要求,如下所示

    我希望 ajax 重新运行 out.println 代码

    这个问题需要在别处解决。您使用的是 JSF 1.x 还是 2.x?无论如何,您应该使用 JSF 提供的 Ajax 组件,例如 RichFaces 的 Ajax4jsf 组件或 JSF 2.0 的 &lt;f:ajax&gt; 组件,它提供了一个 render 属性来触发 JSF 组件的重新呈现。

    【讨论】:

    • 对我来说 escape="false" 基本上和 out.println 做同样的事情,只是它被 ajax 绑定并重新运行。这正是我需要的,感谢您的帮助。
    • 不客气。对不起,如果我提出了太多建议,但你的问题也不是那么清楚和中肯。太高级了,功能需求模糊,术语也不全。
    • 如果有机会,我会认真雇用你。可悲的是,我是入门级的。
    猜你喜欢
    • 2010-12-19
    • 1970-01-01
    • 2011-05-06
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多