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>