【问题标题】:Clean way for conditionally rendering HTML in view?在视图中有条件地呈现 HTML 的干净方法?
【发布时间】:2010-11-29 11:25:55
【问题描述】:

在 JSP/Struts1 设置中有更简洁的方法吗?

...这里有一些 HTML ...

编辑:在管理员模式下,我想从表单元素访问其他参数, 例如来自表单元素:

输入类型=“文本”值=“测试用户”名称=“所有者”

编辑2:实际上,我的问题与Conditionally Render In JSP By User中提出的问题非常相似

但我并没有真正从可能的答案中得到“伪代码”

【问题讨论】:

    标签: java model-view-controller jsp struts


    【解决方案1】:

    SessionConfig 是否在您的 JSP 中作为 bean 公开(作为请求/会话/Struts 表单的一部分)?

    如果不是,您可以公开它。如果它是一个包含全局设置的静态类(从外观上看,这是一种可能性),您可以创建一个小型包装器并将其放入 servlet 上下文中,然后您就可以从 Struts 标记中以 @ 的形式访问它987654322@。 完成后,您可以通过 Struts 标签检查您的状况:

    <logic:equal name="sessionConfig" property="adminMode" value="true">
     ... your HTML here
    </logic:equal>
    

    或者,如果您使用 EL / JSTL,也可以通过 &lt;core:if&gt; 完成。

    【讨论】:

    • 目前,不是 sessionConfig 而是使用 MyFormIncludingConfigParameters 在 DynaForm 我也有一个属性 adminMode 它可以工作,虽然概念仍然有点模糊(什么 scope="application" 意味着,我如何触发一个非DynaForm类)
    • scope="application" 意味着 Struts 会在 ServletContext 中寻找一个 bean。它是 J2EE 规范的一部分,您可以在 Sun 的教程中了解它。对于非 DynaForm 类,它要么必须在 struts 配置中定义为表单(然后它将自动绑定到指定的请求或会话),要么您必须手动将其绑定到您的操作中的请求;然后,您可以使用上面的代码将“sessionConfig”替换为您绑定到的属性名称。
    【解决方案2】:

    没有更多信息,很难回答这个问题,但我认为不是单独的视图:一个用于管理模式,一个用于普通模式。将页面的各个部分提取到图块中将帮助您轻松地做到这一点;见:http://tiles.apache.org/

    【讨论】:

      猜你喜欢
      • 2021-01-07
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      相关资源
      最近更新 更多