【问题标题】:Not Returning JSP from Spring Controller不从 Spring 控制器返回 JSP
【发布时间】:2018-04-02 10:28:09
【问题描述】:

我需要验证数据库中的凭据,因此我编写了一个逻辑来检查给定的详细信息,该代码工作正常,但它正在返回并打印字符串值而不是返回 JSP。

请大家帮忙看看这里有什么问题。

代码:

@RequestMapping(value="/adminvalidate")
        public @ResponseBody String validateAdmin(@RequestParam(value="userid",required=true) String userid, @RequestParam(value="password",required=true) String password) {
            String result = loginser.validate(userid, password);
            if (result.equals("pass")) {
                return "redirect:admin/view";
            }
            return "error";
        }

【问题讨论】:

  • 您使用的是哪个视图解析器?
  • 它用于将所有代码保留在同一控制器以及除此之外的其他控制器中。
  • 去掉@ResponseBody,它会如你所愿。
  • 非常感谢...我能知道原因吗

标签: java jsp spring-mvc


【解决方案1】:

正如 Piotr Podraza 所传达的,通过删除 @ResponseBody,您的代码应该可以工作。

如果你用@ResponseBody注解了一个方法,spring会尝试转换它的返回值并自动写入http响应中。

因此,您要么返回一个字符串并重定向到 jsp,要么使用 ResponseBody 并返回您希望显示的内容。

【讨论】:

    【解决方案2】:

    移除@ResponseBody 并具体使用ModelAndView 来传递视图

    @RequestMapping(value="/adminvalidate")
    public ModelAndView validateAdmin(@RequestParam(value="userid",required=true) String userid, @RequestParam(value="password",required=true) String password) {
                String result = loginser.validate(userid, password);
        if (result.equals("pass")) {
            return new ModelAndView("redirect:admin/view");
        }
        return new ModelAndView("error");
    }
    

    【讨论】:

    • 感谢您的解决方案..我能知道 modelandview 到底是做什么的吗..?
    • ModelAndView 是一个类,其中模型保存要在视图中呈现的数据,视图是您要显示的jsp(或html),您可以在此处找到详细说明-stackoverflow.com/a/5055390/7849549
    • 如果你觉得我的答案相关@Nagendra - 谢谢
    猜你喜欢
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    相关资源
    最近更新 更多