代码之家  ›  专栏  ›  技术社区  ›  Dan Durnev

为什么java在submtting到Spring控制器后无法识别html文本?

  •  0
  • Dan Durnev  · 技术社区  · 7 年前

    我通过单击按钮将js变量发送给Spring控制器。 这就是我在js中的内容:

    function submitArticle()
    {
        var pdata= $('textarea').froalaEditor('html.get');
        $.post("/submitProject", pdata).done(function(response) {
            console.log("Response: " + pdata);
        });
    }
    

    所以它工作得很好,控制台。日志显示下一步: <h1>New Article</h1><p>Some text</p>

    但是,这就是我在Spring controller中得到的:

    %3Ch1%3ENew+Article%3C%2Fh1%3E%3Cp%3ESome+text%3C%2Fp%3E=
    

    它只是取代 < , > , / 一些代码。如何将它们替换为普通标记。因为我想把这个html代码存储在java字符串中。

    我的弹簧控制器:

    @PostMapping("/submitProject")
    public ModelAndView submitProject(@RequestBody String html, @ModelAttribute(value = "LoggedUser") User user)
    {
        System.out.println(html);
        return new ModelAndView("redirect:/");
    }
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Jewels    7 年前

    查看 java.net.URLDecoder#decode 方法 当我运行您通过它发布的代码时,我能够检索原始文本

        2
  •  0
  •   baao    7 年前

    作为对象发送并接收 Map

    $.post("/submitProject", {pdata})...
    

    public ModelAndView submitProject(@RequestBody Map<String, String> data ...
    // -> String html = data.get('pdata');