【问题标题】:How to implement dynamic GUI in JSP如何在 JSP 中实现动态 GUI
【发布时间】:2011-11-11 03:29:34
【问题描述】:

我有一个要求,我需要在 JSP 上显示一些字段。这些字段本质上是动态的,例如:如果我更改了下拉列表中的某些值,则某些字段将被隐藏,而其他一些字段可能会出现。我不想为 div 的显示/隐藏编写 Javascript,而是希望在服务器端的某个地方对逻辑进行编码。

我有一个实现自定义标签库的想法,但如果我能得到一个开箱即用的解决方案,我想知道。

欢迎任何新的建议或解决方案。

【问题讨论】:

    标签: java jsp rendering custom-tag


    【解决方案1】:

    你最好用 JavaScript 来做。话虽如此,您可以发送 AJAX 请求以根据提供的输入获取新的表单字段。例如,有一个<div> 来设置来自服务器的 HTML。

    【讨论】:

    • 我建议使用任何可用的 JS 库来使其更加简单,例如 jquery.com
    【解决方案2】:

    使用struts框架,有一些标签可以根据值隐藏和显示字段

    Logic/logicout tags example

    【讨论】:

    • 我不再推荐使用 Struts 1。对于新项目,您绝对应该切换到 Struts 2。
    • @Thomas : 根据需求,我们可以转移到 struts1 或 2 ,但仍有一些项目在 struts 1 上构建
    • 如果现有项目使用struts 1,那么您不必切换,但请不要建议将struts 1用于新项目(OP没有提及但我认为他没有现在使用struts)。
    • @Thomas :他没有提到,可能是他想使用一些 mvc 框架
    • 正如我所说,如果他想使用 new(对他来说是新的,当前未使用)框架,那么请建议一个当前的框架(如 struts 2 而不是支柱 1).
    【解决方案3】:

    如果您想使用网络框架,请尝试Struts 2。它提供像<s:if test="some ognl expression" ...> 这样的标签来选择性地呈现html内容。

    否则,您可以使用JSTL core 标签,它提供<c:if text="some Java EL expression" ...><c:choose ...> 标签(Example)。

    请记住在更改选择框值后重新加载页面以更新 UI。 为此,可能需要一些 JavaScript。

    【讨论】:

    • 我不赞成 标签,因为它们会使 JSP 混乱。我希望标签应该足够智能以呈现或不呈现主体。
    • @Ashish 好吧,标签仍然必须在 jsp 中有一个主体才能呈现它。或者,您可以拥有自己呈现其主体的标签(即,一个检查自身是否可见的组合框),但是,这将需要特殊的 JSP 组件。在这种情况下,您可能想看看 JSF(-like) 框架(JSF 2.0 不再支持 JSP),它提供了带有 rendered 属性的标签。
    • @Ashish - 请更新您的问题并提及您想要那些“自我检查”/智能标签,以便其他人知道这一点。
    【解决方案4】:

    Javascript 中的 DOM(文档对象模型)非常强大,而且可以跨浏览器。

    删除 UI 上的节点

    1.removeChild(节点名)

    在 UI 上添加节点

    2.elementNode.insertBefore(new_node,existing_node)

    我用过。它运作良好。 有关 DOM 的更多信息。

    http://www.w3schools.com/dom/default.asp

    【讨论】:

      猜你喜欢
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 2021-11-01
      相关资源
      最近更新 更多