【问题标题】:JSTL/JSP dynamic form page stateJSTL/JSP 动态表单页面状态
【发布时间】:2011-01-24 12:09:56
【问题描述】:

在开发大型 Web 应用程序时,我有大量的 JSP。 每个 JSP 都包含(仅)一组内部标签,例如:

<AAA:INPUT value="bbb" state="<%=getPageState()"/>

此标签会根据 getPageState() 的返回值呈现到 HTML 输入字段中,具有只读/启用状态。

这基本上允许我从单个入口点将整个页面设置为启用/禁用。

我不喜欢这样(主要是因为它使我无法编写我想要的 HTML,并且我需要为我想要的每个 HTML 属性维护属性),我知道我可以在客户端使用 JavaScript 进行类似的操作。 是否有其他方法可以在 Web 服务器端单点控制完整 JSP 表单的状态?

【问题讨论】:

    标签: java jsp jstl taglib


    【解决方案1】:

    我将采取的方法是将getPageState() 方法转换为标签,然后在您的自定义标签中使用此标签。这样,您无需在每次调用自定义标记时显式传递页面状态。

    当然,这意味着您必须修改所有自定义标签才能使用这个新标签,但我认为这比在代码中添加显式调用来获取页面状态要好。更不用说,如果开发人员忘记检查页面状态,就会出现不一致的情况。

    此外,现在关于如何元素需要呈现的决定取决于自定义标签本身(它所属的位置)。

    我看到的唯一问题是,现在您必须对每个元素进行多次(冗余)调用才能获取页面状态,这样效率不高。为了解决这个问题,你可以让你的自定义标签(获取页面状态)设置一个页面属性,并让你的自定义标签检查这个页面属性来决定是否应该禁用表单元素(另一种方法是创建一个范围为AT_END的变量。

    【讨论】:

    • 谢谢。问题不在于它的性能方面,而在于如何处理与 HTML 元素相关的问题。如果我在 HTML 字段中使用 getPageState(),我想用特定的样式和特定的 readOnly 属性指示为禁用,我需要多次调用 getPageState,使用 taglib 我可以做一些更通用的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多