Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf bean中的值未正确显示时出现问题_Jsf_Jsf 2_Primefaces_Spinner - Fatal编程技术网

Jsf bean中的值未正确显示时出现问题

Jsf bean中的值未正确显示时出现问题,jsf,jsf-2,primefaces,spinner,Jsf,Jsf 2,Primefaces,Spinner,我有一个模板页面,其中包含了十个页面所需的所有代码,页面之间的唯一区别是一些值 其中大多数都运行良好,但我对这部分代码有一个问题: <p> <p:spinner id="ajaxspinner0-19" value="#{tooltipBean.sectionSave}" stepFactor = "1" min="0" max="19"

我有一个模板页面,其中包含了十个页面所需的所有代码,页面之间的唯一区别是一些值

其中大多数都运行良好,但我对这部分代码有一个问题:

            <p>
                <p:spinner id="ajaxspinner0-19" value="#{tooltipBean.sectionSave}" 
                           stepFactor = "1"  min="0" max="19" 
                           disabled = "#{formBean.number != 1}" >  
                    <p:ajax update="ajaxspinnervalue " process="@this" />  
                </p:spinner> 

            </p>
我通过以下方式在查看页面中使用模板:

 <f:event listener="#{tooltipBean.setupForPageA}" type="preRenderView" />    

            <ui:include src="/WEB-INF/templates/commonForm.xhtml"/>
我通过以下方式使其在不使用模板的情况下正常工作:

        <p>
            <p:spinner id="ajaxspinner0-19" value="#{markingBean.markToEdit.markSectionOne}" 
                       stepFactor = "1"  min="0" max="19" 
                       disabled = "#{formBean.number != 1}" >  
                <p:ajax update="ajaxspinnervalue " process="@this" />  
            </p:spinner> 

        </p>
该代码将在微调器中为我提供值71,但是模板中的代码显示在微调器{markingBean.markToEdit.markSectionOne}中,这是正确的,我只需要运行并返回71,而不是显示代码的值

这有意义吗?对不起,如果我写得很混乱,我不确定如何描述这个问题


我认为它只是没有在正确的时间进行初始化,是否有可能先用值对页面进行初始化,然后给它时间让新值在被用户查看之前获取数据(在本例中为71)

您不能从这样的支持bean中指定EL。微调器控件假定它对作为其value属性传入的任何内容都具有get和set访问权限。它不会试图将指定的值解释为EL,这可能是一个非常危险的副作用

以下是我的做法。将值作为参数传递给模板:

<ui:include src="templates/commonForm.xhtml">
  <ui:param name="spinnerValue" value="#{markingBean.markToEdit.markSectionOne}" />
</ui:include>
<p>
    <p:spinner id="ajaxspinner0-19" value="#{spinnerValue}"
               stepFactor = "1"  min="0" max="19" 
               disabled = "#{formBean.number != 1}" >  
        <p:ajax update="ajaxspinnervalue " process="@this" />  
    </p:spinner> 
</p>
然后,在模板中引用该参数:

<ui:include src="templates/commonForm.xhtml">
  <ui:param name="spinnerValue" value="#{markingBean.markToEdit.markSectionOne}" />
</ui:include>
<p>
    <p:spinner id="ajaxspinner0-19" value="#{spinnerValue}"
               stepFactor = "1"  min="0" max="19" 
               disabled = "#{formBean.number != 1}" >  
        <p:ajax update="ajaxspinnervalue " process="@this" />  
    </p:spinner> 
</p>