单选按钮与JSF传递?

时间:2014-06-19 08:46:18

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

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

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

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

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

或者这根本不受支持? (type =“radio”未出现在Oracle doc中的“表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>

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

Custom layout with h:selectOneRadio in JSF 2.2