【问题标题】:Post request with js and jsp in MVC在 MVC 中使用 js 和 jsp 发布请求
【发布时间】: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 个链接来获取您的示例的完整概述。还要使用适当的代码标签来发布代码而不是图像(由于调整大小通常不可读)。

标签: java spring jsp


【解决方案1】:

试试这个:

var url = "http://localhost:8080/arakaru/customer/list/a?monthParam="+cityName

您的控制器在查询字符串中需要一个请求参数 (@RequestParam)。

【讨论】:

  • 我用post方法成功获取了一个参数,我认为不是问题
  • @Слава 试一次
猜你喜欢
  • 1970-01-01
  • 2023-01-10
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 2023-02-19
  • 1970-01-01
  • 2015-06-05
相关资源
最近更新 更多