引用“超级”表单标记的html <form>标记 - 可能吗?</form>

时间:2012-02-13 14:47:16

标签: java html jsp

我知道HTML不是一种编程语言,所以应用面向对象的原则是不可能的,但是,我有一个烦人的问题,如果你有一个从父表单标签继承的表单标签就可以解决这个问题。

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

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

除了在jsp上提取代码重复之外的任何想法?

2 个答案:

答案 0 :(得分:0)

如果您在页面上有单独的表单,那么是的,您将不得不复制所有这些表单中的公共数据;如果不在客户端上使用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代码中执行一次,然后将其转储到每个表单上。

答案 1 :(得分:0)

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

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