【问题标题】:Radio Button with JSF Pass-Through?带有 JSF Pass-Through 的单选按钮?
【发布时间】:2017-03-21 09:42:15
【问题描述】:

我们使用外部提供的 HTML5 资源(响应式设计)。我们的挑战是使用 Java 添加逻辑,同时保留准确的 HTML 呈现。

我发现 JSF Pass-Through 在这种情况下很有帮助。

但我无法让单选按钮工作。我不确定如何使用托管 bean 中的属性(示例中的“stringAttribute”)进行连接。在 POST 数据中,我看到选中的单选按钮的值通过了,但 JSF 没有在托管 bean 中设置它。

有人看到我在这里的尝试有什么问题吗?

或者这根本不支持? (type="radio" 未出现在 Oracle 文档的“表 8-4 如何 Facelets 如何呈现 HTML5 元素”中)。

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:jsf="http://xmlns.jcp.org/jsf" 
      xmlns:pt="http://xmlns.jcp.org/jsf/passthrough">

<h:form>
    <input jsf:value="#{myBean.stringAttribute}" pt:value="firstChoice" pt:name="the-radio-group" type="radio"/>
    <input jsf:value="#{myBean.stringAttribute}" pt:value="secondChoice" pt:name="the-radio-group" type="radio"/>

    <h:commandButton type="submit" value="Submit" action="#{myBean.submit}"/>
</h:form>

或者你会如何处理这个问题?请记住,我有相当复杂的 HTML,必须完全使用 JSF 呈现。为了给你一个想法,这里是我试图生成的 HTML:

<div class="form-group">
    <div class="col-sm-12 mod-formelem">
        <input data-enslaved-group="radio" data-enslaved-master="radio-1" id="___radio204_01___" name="___radio204___" type="radio"/>
        <label class="mod-formelem--icon mod-icon icon-checkbox_checkmark_16" for="___radio204_01___"/>
        <label class="mod-formelem--text" for="___radio204_01___">Option 1</label>
    </div>
    <div class="col-sm-12 mod-formelem">
        <input data-enslaved-group="radio" data-enslaved-master="radio-2" id="___radio204_02___" name="___radio204___" type="radio"/>
        <label class="mod-formelem--icon mod-icon icon-checkbox_checkmark_16" for="___radio204_02___"/>
        <label class="mod-formelem--text" for="___radio204_02___">Option 2</label>
    </div>
</div>

【问题讨论】:

  • 你看到html是如何在浏览器中生成的了吗?

标签: html responsive-design radio-button jsf-2.2


【解决方案1】:

这个问题已有两年之久没有得到回答,但问题仍然存在,因此回答这个问题可能是值得的,这样其他面临同样问题的开发人员可以从中受益。

使用JSF传递变量来实现单选按钮似乎是不可能的。但是,像 Bootstrap 这样的 CSS 框架要求您使用不同于 JSF 生成的 HTML 代码。在这种情况下,您可以模拟this SO answer 中描述的单选按钮。该示例特别使用了 Bootstrap 和 BootsFaces,但该想法也可以推广到其他框架。

【讨论】:

    【解决方案2】:

    我认为并非不可能。你可以试试这个解决方案:

    Custom layout with h:selectOneRadio in JSF 2.2

    【讨论】:

    • 请将您的解决方案的关键点添加到您的答案中,而不仅仅是一个链接。
    猜你喜欢
    • 1970-01-01
    • 2012-01-24
    • 2021-06-19
    • 2013-09-25
    • 2013-08-26
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    相关资源
    最近更新 更多