我知道HTML不是一种编程语言,所以应用面向对象的原则是不可能的,但是,我有一个恼人的问题,如果你能有一个从父表单标签继承的表单标签,这个问题就可以简单地解决。
出于各种原因,我想将我的JSP页面拆分成逻辑形式的includes,但主要是为了帮助划分客户端数据输入和相关的服务器端处理,以促进代码的重用。但是,有一个共同的页面范围值,我要求与每个单独的表单提交一起提交。
我可以在每个表单中复制这一输入,但在一个页面上多次复制相同的值似乎很疯狂。javascript "onsubmit“函数也可能是答案,但当javascript被关闭时,这是无用的。我也可以在java中使用一个会话作用域变量来存储值,但我宁愿避免这样做。
除了吸收jsp上的代码重复之外,还有什么想法吗?
发布于 2012-02-13 22:52:00
如果页面上有单独的表单,那么是的,您必须在所有这些表单中复制公共的数据片段;如果不在客户端使用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代码中执行一次,然后将其转储到每个表单上。
发布于 2012-02-13 22:56:58
如果您需要在HTML中使用“继承”,那么JSP不是一种很好的技术。
您应该了解一下JSF,在那里您将能够继承模板。以here为例。
https://stackoverflow.com/questions/9262438
复制相似问题