繁体   English   中英

primefaces 组件未更新辅助 bean

[英]primefaces component not updating the backing bean

我正在使用 primefaces 布局组件并且在使用嵌入式形式的组件时遇到困难:

<p:selectOneRadio id="customRadio" 
                    value="#{exams.examQuestions.currentQuestion.selectedAnswer}"
                    layout="custom">

<f:selectItem itemLabel="Option1" 
                    itemValue="#{exams.examQuestions.currentQuestion.examentry.answer1}"
                    rendered="#{exams.examQuestions.currentQuestion.render_question1}"/>

    <f:selectItem itemLabel="Option2" 
                    itemValue="#{exams.examQuestions.currentQuestion.examentry.answer2}"
                    rendered="#{exams.examQuestions.currentQuestion.render_question2}"/>

    <f:selectItem itemLabel="Option3" 
                    itemValue="#{exams.examQuestions.currentQuestion.examentry.answer3}"
                    rendered="#{exams.examQuestions.currentQuestion.render_question3}"/>

    <f:selectItem itemLabel="Option4" 
                    itemValue="#{exams.examQuestions.currentQuestion.examentry.answer4}"
                    rendered="#{exams.examQuestions.currentQuestion.render_question4}"/>

    <f:selectItem itemLabel="Option5" 
                    itemValue="#{exams.examQuestions.currentQuestion.examentry.answer5}"
                    rendered="#{exams.examQuestions.currentQuestion.render_question5}"/>

    <h:panelGrid columns="1">  
    <p:radioButton id="opt1"
        for="customRadio"
        itemIndex="0"
        rendered="#{exams.examQuestions.currentQuestion.render_question1}"/>  
    <h:outputLabel for="opt1"
        value="#{exams.examQuestions.currentQuestion.examentry.answer1}"
        rendered="#{exams.examQuestions.currentQuestion.render_question1}"/>
    <br/>
    <p:radioButton id="opt2" for="customRadio" 
        itemIndex="1"
        rendered="#{exams.examQuestions.currentQuestion.render_question2}"/>  
    <h:outputLabel for="opt2" 
        value="#{exams.examQuestions.currentQuestion.examentry.answer2}"
        rendered="#{exams.examQuestions.currentQuestion.render_question2}"/>
    <br/>
    <p:radioButton id="opt3" 
        for="customRadio" 
        itemIndex="2"
        rendered="#{exams.examQuestions.currentQuestion.render_question3}"/> 
    <h:outputLabel for="opt3" 
        value="#{exams.examQuestions.currentQuestion.examentry.answer3}"
        rendered="#{exams.examQuestions.currentQuestion.render_question3}"/>
    <br/>
    <p:radioButton id="opt4" 
        for="customRadio" 
        itemIndex="3"
        rendered="#{exams.examQuestions.currentQuestion.render_question4}"/>
    <h:outputLabel for="opt4" 
        value="#{exams.examQuestions.currentQuestion.examentry.answer4}"
        rendered="#{exams.examQuestions.currentQuestion.render_question4}"/>
    <br/>
    <p:radioButton id="opt5" 
        for="customRadio" 
        itemIndex="4"
        rendered="#{exams.examQuestions.currentQuestion.render_question5}"/> 
    <h:outputLabel for="opt5" 
        value="#{exams.examQuestions.currentQuestion.examentry.answer5}"
        rendered="#{exams.examQuestions.currentQuestion.render_question5}"/>
    </p:selectOneRadio>

当我 select 不同的项目时,支持 bean exams.examQuestions.currentQuestion.selectedAnswer 没有更新,这是怎么回事? 如果我从同一表单调用此组件“customRadio”的更新,则支持 bean 会自行更新,但我无法在表单外执行此操作。 请帮忙!

我真的不知道你到底想要什么(因为我在你的示例代码中没有看到任何 forms),但我想你的问题是你在最后一个 f:selectItem 之后没有关闭 p:selectOneRadio .. .

请仔细看看 primefaces showcase selectOneRadio

此外,如果您想从另一个表单更新组件,您可以像这样调用更新update=":formIdOfComponent:componentID"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM