我正在使用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";
}
这会这样做,还是应该重写我想要调用此控制器的方法?
答案 0 :(得分:0)
@Controller
中应该有两种方法:
(1)支持GET
的一种方法:这是为了提供第一页的显示View
(在计算之前)。
(2)支持POST
的一种方法:这是处理从第一页接收的输入,然后将结果发送回View(JSP)。
答案 1 :(得分: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";
}