Jsf primefaces oneRadio并使用inputText作为值

Jsf primefaces oneRadio并使用inputText作为值,jsf,primefaces,Jsf,Primefaces,我想有三个单选按钮,前两个有一个静态值,但第三个,如果选中,用户可以在inputText框中键入任何内容。我可以使用这段代码获得布局,但是表单不会提交,我也不会在任何地方出现错误 <p:outputPanel id="customPanel" style="margin-bottom:10px"> <p:selectOneRadio id="customRadio" value="#{backbean.radioselect}" layout="custom">

我想有三个单选按钮,前两个有一个静态值,但第三个,如果选中,用户可以在inputText框中键入任何内容。我可以使用这段代码获得布局,但是表单不会提交,我也不会在任何地方出现错误

<p:outputPanel id="customPanel" style="margin-bottom:10px">
    <p:selectOneRadio id="customRadio" value="#{backbean.radioselect}" layout="custom">
        <f:selectItem itemLabel="Choice 1" itemValue="choice1" />
        <f:selectItem itemLabel="Choice 2" itemValue="choice2" />
        <f:selectItem itemLabel="Custom" itemValue="#{backbean.radioselect != 'choice1' and backbean.radioselect != 'choice2' ? backbean.radioselect : ''}" />
    </p:selectOneRadio>

    <h:panelGrid columns="2">
        <p:radioButton id="choice1" for="customRadio" itemIndex="0" />
        <h:outputLabel for="choice1" value="Choice 1" />

        <p:radioButton id="choice2" for="customRadio" itemIndex="1" />
        <h:outputLabel for="choice2" value="Choice 2" />

        <p:radioButton id="choiceCustom" for="customRadio" itemIndex="2" />
        <p:inputText style="width: 100%;" value="#{backbean.radioselect != 'choice1' and backbean.radioselect != 'choice2' ? backbean.radioselect : ''}" />
    </h:panelGrid>
</p:outputPanel>


为什么selectOneRadio和inputText的值相同-#{backbean.radioselect}?这是因为如果它不等于choice1或choice2,它将是自定义的,然后我将预先填充inputText,使其与之前的值相同(如果有)@Mahendranayyarsamykandiari如果计算了输入文本的EL表达式,并且无法调用setter,则无法提交表单-->value=“#{backbean.radioselect!='choice1'和backbean.radioselect!='choice2'?backbean.radioselect:'}。请添加。您是否在其中使用业务逻辑而不是EL。add id=“myGrid”“在您的panelGrid中。我有一个commandButton更新表单,我的问题是当我将此代码块添加到表单时,它不再到达支持bean。删除这段代码,一切都按照我认为应该的方式进行@不幸的是,它不会起作用。JSF要求输入组件具有像#{backbean.myInput}这样的EL表达式,以便可以调用setter。因此,请更改inputText中的EL并重新设计。