多阶段形式策略

时间:2011-05-19 16:28:49

标签: jsf jsf-2 facelets

目前,我正在构建一个页面,用于输入我公司处理的不同产品的定价数据。定价数据有点复杂,因此需要不同的表格,具体取决于输入的新数据项目。现在我处理这个问题的策略是将页面拆分成多种形式,在输入有效数据时触发下一阶段的AJAX更新。每个表单都包含一个ui:include指向控制器bean上的方法,该方法返回一个指向xhtml片段的字符串,其中包含先前输入数据的相应表单结构。

<form id="stageOne"> Some content that triggers an ajax update of stageTwo </form>
<form id="stageTwo"> <ui:include src="#{controller.getStageTwo()"> </form>

支持bean方法:

public String getStageTwo() {
   switch (stageOneContent) {
      case 1: return "/context-root/snippetName.xhtml";
      case 2: return "/context-root/snippetName2.xhtml";
   }
}

这个解决方案对我来说感觉不对,特别是让控制器方法负责知道调用页面可能使用的所有xhtml片段的确切位置。我还是比较新的,觉得我可能会遗漏一些东西。有没有更好的方法来处理这种情况?

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样?

<ui:include src="snippetName#{controller.stageOneContent}.xhtml">

您只需要将snippetName.xhtml重命名为snippetName1.xhtml