我有一个模板页面,它包含了我十页所需的所有代码,其中页面之间的唯一差异是一些值
其中大多数都运行良好,但我对这部分代码有一个问题:
<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>
这段代码背后的想法是,它转到tooltipBean获取节保存值,将该值添加到此处,然后从另一个bean 中获取值
tooltipBean中的值是
sectionSave = "#{markingBean.markToEdit.markSectionOne}";
我在视图页面中使用模板的方式是:
<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,而不是显示代码的值
这有意义吗,对不起,如果我写得很困惑,我不确定如何描述问题
我认为它只是没有在正确的时间被嵌入,是否可以先用值嵌入页面,然后给它时间让新值在被用户查看之前获得数据
不能从这样的backingbean中指定EL。微调器控件假定它对作为其值属性传入的任何内容都具有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>