好的,所以一旦我导航到这个页面并加载我想将它重定向到'basket.jsp',但由于某种原因它只是一遍又一遍地刷新。这必须与我一遍又一遍地调用onload函数有关,但我不知道为什么会这样做。
我的代码:
<%
String empty = request.getParameter("emptyBasket");
if (empty!=null) {
basket.clearBasket();
}
String item = request.getParameter("addItem");
basket.addItem(item); %>
<html>
<head>
<link rel="stylesheet" href="css/style.css" type="text/css"/>
</head>
<body>
<table>
<!-- some table stuff unimportant -->
</table>
<p> Order total = <%= basket.getTotalString()%>
<%
if ( basket.getTotal() > 0) {
%>
<form action="order.jsp" method="post">
<input type="text" name="name" size="20">
<input type="submit" value="Place Order" />
</form>
<form action="basket.jsp" method="get">
<input type="hidden" name="emptyBasket" value="yes">
<input type="submit" value="Empty Basket" />
</form>
<%
}
%>
<script>
window.onload = function(){
window.location.href = 'basket.jsp';
}
</script>
</body>
</html>
答案 0 :(得分:0)
如果是basket.getTotal()&gt; 0您要创建2个表单吗?然后你如何提交数据?以及......这段代码没有意义
(它基本上就像真的创建2个表格然后在你刷新的页面上你有这两个表格一个提交订单,一个提交到篮子
一般来说,在视图上拥有比html更多的java是不好的..但我认为这是atm的主要问题
form action =“basket.jsp”method =“get”&amp;&amp; window.location.href ='basket.jsp';
您正在将表单提交到该页面,然后您正在刷新它
我猜你要做的一些事情,但我可以完全离开。
你能解释一下这里的逻辑或流程是什么吗?
另外..我认为你不应该在html页面上接收你需要控制器的参数。
您应该将您的结构从index.html中的所有内容更改为..
项目
- controller.java
- index.html的
将表单中的数据从index.html提交到controller.java(controller.java可以是servlet)。在controller.java中实现doGet / doPost函数并收集数据。您甚至可以直接在该servlet中执行逻辑,并使用请求调度程序将数据发送回您的视图。
答案 1 :(得分:-1)
<meta http-equiv="refresh" content="0; url=your url to another page" />
但是W3C不鼓励使用meta进行重定向。
<body onload=window.location='your url to another page'>
。