【发布时间】:2020-05-20 13:57:05
【问题描述】:
我有一个控制器:
@RequestMapping("/list/a")
public String showFormForAdd(@RequestParam(value="monthParam") String month,Model model) {
System.out.println(month);
model.addAttribute("daysMod",month);
return "two";
}
为什么当我从 jsp №1 发送 post 请求时,控制器接受参数 monthParam 并打开新的 jsp-page №2。
<form action="/arakaru/customer/list/a" method="post">
<input type="hidden" name="monthParam" value="Janu">
<input type="submit" value="Add Customer"/>
</form>
但是当我对js做同样的事情时(发送带有参数monthParam的post请求),控制器只接受参数,但它不会打开新的jsp页面。有没有打开新jsp页面的选项通过从 js 获取参数?
function openCity(evt, cityName) {
var i, tabcontent, tablinks;
//console.log(cityName);
var http = new XMLHttpRequest();
var url = "http://localhost:8080/arakaru/customer/list/a";
var params = "monthParam="+cityName;
http.open('POST', url, true);
http.setRequestHeader('Content-type', "application/x-www-form-urlencoded");
http.send(params);
jsp page №2(仅当帖子来自 jsp№1 时有效)
【问题讨论】:
-
你不能直接通过客户端JS打开jsp页面,这需要在后端进行
-
@FelixSchildmann 但我正在尝试在控制器中打开一个新的 jsp
-
当然不会。 JavaScript 在后台处理,因此它是结果。因此,您会收到呈现的页面作为 javascript 调用的结果。您将需要在您的 javascript 处理程序中处理它。另一件事,请在您的帖子中包含代码,不要让人们单击 4 个链接来获取您的示例的完整概述。还要使用适当的代码标签来发布代码而不是图像(由于调整大小通常不可读)。