【问题标题】:Pass get values to method and call in jsp page将获取值传递给方法并在jsp页面中调用
【发布时间】:2017-03-27 03:12:21
【问题描述】:

我正在使用 spring mvc,制作一个小型网络应用程序。 我在 jsp 页面中有一个表单,我试图将值从我的 .GET 控制器传递给一个方法,并在按下同一 JSP 页面或另一个页面上的“提交”按钮后显示被调用方法的结果,最好是在同一页面上。

表单如下所示: http://i65.tinypic.com/6gyo02.png

这是我从表单中获取值后要调用的方法:

public void calcMacros() {
        int goal = 0;
        if (this.goal == 0.7){
            goal = 1;
        } else if (this.goal == 0.9) {
            goal = 2;
        } else if (this.goal == 1) {
            goal = 3;
        } else if (this.goal == 1.2){
            goal = 4;
        }

        switch (goal) {
            case 1: weightLoss();
                    weightLossProtCalc();
                    weightLossCarbCalc();
                    weightLossFatCalc();
                break;
            case 2: weightLoss();
                    weightLossProtCalc();
                    weightLossCarbCalc();
                    weightLossFatCalc();
                break;
            case 3: tdeeCalculator();
                    maintainProteinCalc();
                    maintainCarbCalc();
                    maintainFatCalc();
                break;
            case 4: weightGain();
                    weightGainProtCalc();
                    weightGainCarbCalc();
                    weightGainFatCalc();
                break;
            default:
                break;
        }
        System.out.println("selected goal was " + goal + "and proper methods have been called.");
    }

最好的问题是,如何将此方法转换为 .POST 控制器,以便在同一个 JSP 页面中显示它的结果。还有如何在 JSP 页面中调用这个方法/控制器?

谢谢!

编辑:控制器

@RequestMapping(value = "/calculator" ,  method = RequestMethod.GET)
    public String calculatorPage(ModelMap model, MacroCalculatorForm macroCalculatorForm) {
        model.addAttribute("user",getPrincipal());
        macroCalculatorForm.calcMacros();
return "calculator";
    }

这样可以吗,还是我应该重写我想要调用到这个控制器的方法?

【问题讨论】:

  • 你的 GET 控制器在哪里?在此处添加代码
  • @javaguy 我添加了控制器,我应该用其中的方法重写控制器吗?

标签: spring forms jsp spring-mvc


【解决方案1】:

您的@Controller 中应该有两种方法:

(1) 一种支持GET的方法:这是提供第一页的显示View(计算前)。

(2) 一种支持POST的方法:这是处理从第一页接收到的输入,然后将结果发送回视图(JSP)。

【讨论】:

    【解决方案2】:

    GET 请求中读取值很容易。只需要定义带有输入名称的参数,例如年龄示例:

    @RequestMapping(value = "/calculator" ,  method = RequestMethod.GET)
        public String calculatorPage(ModelMap model, 
             MacroCalculatorForm macroCalculatorForm,
             @RequestParam(value = "age") int age)
        {
            //Now you can use age value in your method 
    
            model.addAttribute("user",getPrincipal());
            macroCalculatorForm.calcMacros();
            return "calculator";
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-28
      • 2013-12-12
      • 2023-03-19
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多