繁体   English   中英

JSTL / JSP动态表单页面状态

[英]JSTL/JSP dynamic form page state

在大型Web应用程序上工作时,我有很多JSP。 每个JSP包含(仅)一组内部标记,例如:

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

基于getPageState()的返回值,此标记呈现为具有只读/启用状态的HTML输入字段。

基本上,这使我可以从单个入口点将整个页面设置为启用/禁用。

我不喜欢这样(主要是因为它使我无法编写所需的HTML,并且我需要为所需的每个HTML属性维护属性),我知道我可以在JavaScript方面实现类似的功能。 还有其他方法可以在Web服务器端的单个点上控制完整JSP表单的状态吗?

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

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

而且,现在有关如何呈现元素的决定取决于自定义标记本身(它所属的位置)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM