【问题标题】:html <form> tag referencing a "super" form tag - Possible?html <form> 标签引用“超级”表单标签 - 可能吗?
【发布时间】:2012-02-13 14:47:15
【问题描述】:

我知道 HTML 不是一种编程语言,因此不可能应用面向对象的原则,但是,我有一个烦人的问题,如果您可以让表单标签从父表单标签继承,那么这个问题将很容易解决。

出于各种原因,我想将我的 JSP 页面拆分为逻辑形式,但主要是为了帮助划分客户端数据输入和相关的服务器端处理,以促进代码的重用。但是,我需要与每个单独的表单提交一起提交一个常见的页面范围值。

我可以在每个表单中复制这个输入,但在一个页面上多次复制相同的值似乎很疯狂。一个javascript“onsubmit”函数也可能是答案,但是当javascript关闭时这是无用的。我也可以在我的 java 中有一个会话范围变量来存储值,但我宁愿避免这种情况。

除了吸收jsp上的重复代码之外还有什么想法吗?

【问题讨论】:

  • 您要附加到每个表单的数据到底是什么?为什么你不想在会话中保留这些数据?
  • 您不喜欢只复制值还是整个输入?
  • 这是一个用于导航的页面名称字符串。不要因为妄想症而保持会话,因为它可能与正在显示的实际页面不同步,从而将用户转储到错​​误的页面上。

标签: java html jsp


【解决方案1】:

如果您在页面上有单独的表单,那么是的,您必须在所有这些表单中复制公共数据;如果不在客户端使用 JavaScript,就无法“继承”它。

如果它是隐藏信息(听起来很像),您可以在每个表单的 action 属性中包含,这样您的 JSP 代码就可以使重复相当无害:

<%
    // (Be sure to URL-encode the value if necessary, not shown here)
    String formAction = response.encodeURL("action.jsp?hiddenData=" + hiddenValue);
%>
...
<form action="<%=formAction%>">
...
</form>
...
<form action="<%=formAction%>">
...
</form>
...

或者,您可以在每个表单中包含一个 hidden 字段,再次在 JSP 代码中执行一次,然后将其转储到每个表单中。

【讨论】:

    【解决方案2】:

    如果您需要 HTML 中的“继承”,JSP 不是一个好的技术。

    您应该看看 JSF,您可以在其中继承模板。以here 为例。

    【讨论】:

      猜你喜欢
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      • 2018-06-29
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多