【问题标题】:multi-stage form strategies多阶段形式策略
【发布时间】:2011-05-19 16:28:48
【问题描述】:

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

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

以及backing bean方法:

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

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

【问题讨论】:

    标签: jsf jsf-2 facelets


    【解决方案1】:

    像这样的东西怎么样?

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

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

    【讨论】:

    • 这会很好用。不知道jsf会这样自动拼接src的内容。
    • 不客气。这不完全是“JSF”。那就是EL(表达语言)。另见stackoverflow.com/tags/el/info
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 2022-12-16
    相关资源
    最近更新 更多