提问

提问

@PostMapping("/calculation")
    @ResponseBody
    public String showResult(Double height, Double weight){
//        ModelAndView mav = new ModelAndView("/result.jsp");
        Double out = weight / Math.pow((height / 100),2);
        String s;
        if(out <= 19){
            s = "多吃点,太瘦了";
        }else if(out > 25){
            s = "少吃点,太胖了";
        }else{
            s = "体重正常";
        }
//        mav.addObject("i",s);
//        return mav;
        String res = "<h1>提示信息:" + s + "<h1>";
        return res;
    }

写responseBody直接返回字符串,可以实现

但是要用ModelandView的话

@PostMapping("/calculation")
//    @ResponseBody
    public ModelAndView showResult(Double height, Double weight){
        ModelAndView mav = new ModelAndView("/result.jsp");
        Double out = weight / Math.pow((height / 100),2);
        String s;
        if(out <= 19){
            s = "多吃点,太瘦了";
        }else if(out > 25){
            s = "少吃点,太胖了";
        }else{
            s = "体重正常";
        }
        mav.addObject(s);
        return mav;
//        String res = "<h1>提示信息:" + s + "<h1>";
//        return res;
    }

然后html

<%--
  Created by IntelliJ IDEA.
  User: Zakaji Li
  Date: 2023/3/9
  Time: 18:51
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>提示信息:${s}</h1>
</body>
</html>

却不显示s的内容,这是为什么呢

https://img1.sycdn.imooc.com//climg/640a9ec20941f9f205330342.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小蓝 2023-03-10 11:33:38

同学你好,addObject方法传递参数时,需要以键值对的方式进行传递,正确的写法是mav.addObject("s",s);

祝学习愉快~

  • https://img1.sycdn.imooc.com//climg/640bb6b20973141b12520958.jpg

    改了一下报500错误

    2023-03-11 07:01:21
  • 同学你好,不确定同学是否修改了正确的位置,老师将代码反馈给同学,同学可以对比一下:

    @PostMapping("/calculation")
    public ModelAndView showResult(Double height, Double weight){
        ModelAndView mav = new ModelAndView("/result.jsp");
        Double out = weight / Math.pow((height / 100),2);
        String s;
        if(out <= 19){
            s = "多吃点,太瘦了";
        }else if(out > 25){
            s = "少吃点,太胖了";
        }else{
            s = "体重正常";
        }
        mav.addObject("s",s);
        return mav;
    }

    祝学习愉快~

    2023-03-11 10:04:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师