JSP 页面不断刷新



好的,所以一旦我导航到此页面并加载它,我想将其重定向到"篮子.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>

如果 basket.getTotal()> 0 你正在创建 2 个表单? 然后你如何提交数据? 以及到哪里.. 这段代码没有意义

(它基本上就像如果为 true 创建 2 个表单,然后在刷新的页面上,您有这 2 个表单,一个提交给订单,一个提交到购物篮

一般来说,在视图上拥有比HTML更多的Java是不好的......但我认为这是ATM的主要问题

form action="basket.jsp"method="get" && window.location.href = 'basket.jsp';

您将表单提交到该页面,然后刷新它

我猜你想做的一些事情,但我可能完全不对劲。

你能解释一下这里的逻辑或流程是什么吗?

另外..我认为您不应该在HTML页面上接收参数,您需要一个控制器。

您应该将结构从索引中的所有内容更改为.html。

项目

-来源

--控制器.java

-蹼

--索引.html

以索引.html的形式将数据提交到控制器.java(控制器.java可以是 servlet)。在控制器中.java实现doGet/doPost函数并收集数据。您甚至可以直接在该 servlet 中执行逻辑,并使用请求分派器将数据发送回您的视图。

  1. <meta http-equiv="refresh" content="0; url=your url to another page" />但是,W3C 不鼓励使用 meta 进行重定向。

  2. <body onload=window.location='your url to another page'>.

最新更新