2016-11-13 15 views
0

私はspring mvcを使用しています。小さなweb-appを作っています。 私はJSPページにフォームを持っています、そして、私は.GETコントローラの値をメソッドに渡して、同じJSPページ上の "Submit"ボタンを押した後に呼び出されたメソッドから結果を表示しようとしています。同じページにあることが好ましい。メソッドに値を渡して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"; 
    } 

が、これはそれを行うだろうか、私はこのコントローラに呼び出さしたいメソッドを書き換える必要がありますか?

+0

GETコントローラはどこですか?ここにコードを追加 – developer

+0

@javaguyコントローラーを追加しましたが、コントローラ内にそのメソッドを書き直す必要がありますか? –

答えて

0

はあなたの@Controllerで2つのメソッドを持っている必要があります。

(1)GETをサポートしています一つの方法:これは(計算の前に)最初のページの表示Viewを提供することです。

(2)POSTをサポートする1​​つの方法:これは、最初のページから受け取った入力を処理し、その結果をビュー(JSP)に戻すためです。

0

値を読み取るから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"; 
    } 
関連する問題