2012-11-26 47 views
0

我正在使用Tomahawk radio control來滿足我的設計要求。我正在測試,並想問問是否有人回答。jsf2 tomahawk selectOneRadio分別渲染標籤

<t:selectOneRadio id="myRadio" forceId="true" layout="spread" styleClass="field checkbox"> 
            <f:selectItems value="#{personBean.genders}" /> 
           </t:selectOneRadio> 
           <c:forEach items="#{personBean.genders}" varStatus="loop"> 
            <span style="width:80px;" class="checkbox"><t:radio for=":myForm:myRadio" index="#{loop.index}" /></span> 
           </c:forEach> 

HTML生成

<span class="checkbox"><input type="radio" class="field checkbox" value="male" name="myRadio" id="myForm:j_idt35"><label for="myForm:j_idt35"> male</label></span> 

問:

我想用其上呈現與複選框男性類屬性。是否可以單獨渲染它?

我可以應用下面的樣式,但我希望Label分別渲染以獲得更多控制。

.checkbox label { 
    display: block; 
    cursor: pointer; 
    font-size: 100%; 
    line-height: 150%; 
    margin: -17px 0 0 18px; 
    padding: 0 0 5px 0; 
    color: #222; 
    width: 88% 
} 

回答

0

查看源代碼否,它不是。

你可以然而與+樣式是:

input[type='checkbox'] + label { 
    display: block; 
    cursor: pointer; 
    font-size: 100%; 
    line-height: 150%; 
    margin: -17px 0 0 18px; 
    padding: 0 0 5px 0; 
    color: #222; 
    width: 88% 
} 

如果想以不同的方式呈現它,你需要重寫HtmlRadioRenderer:

將這個在faces-config.xml

<renderer> 
    <component-family>javax.faces.SelectOne</component-family> 
    <renderer-type>org.apache.myfaces.Radio</renderer-type> 
    <renderer-class>your-renderer-class</renderer-class> 
    </renderer> 

創建一個類your-renderer-class.java,覆蓋in org.apache.myfaces.renderkit.html.ext.HtmlRadioRenderer,你很好去。

請閱讀網頁上的內容:JSF 2.0: How to override base renderers with custom ones?