【发布时间】: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