Nov*_*ser 6 java model-view-controller spring spring-mvc
我有一个控制器方法定义如下 -
@RequestMapping(method = RequestMethod.POST, value="/callMe")
public String myMethod(@ModelAttribute MyClass myObj, Model model) {
//Do something
}
Run Code Online (Sandbox Code Playgroud)
即使我没有传递 ModelAttribute myObj,如何才能调用上述控制器方法?
我不想在没有它的情况下创建另一个控制器并复制功能。
小智 3
模型属性已经是可选的。即使您不传递 model 属性,也会创建 myObj。所以检查
if(myObj == null){
//Do method1
}else{
//Do method2
}
Run Code Online (Sandbox Code Playgroud)
不管用。
尝试这个。像这样在 myClass 中创建一个布尔值
private Boolean isGotMyObj = false;
Run Code Online (Sandbox Code Playgroud)
在你的jsp中(提交模型属性)添加一个像这样的隐藏输入
<input type="hidden" value="1" name="isGotMyObj" />
Run Code Online (Sandbox Code Playgroud)
然后在控制器中执行此操作
@RequestMapping(method = RequestMethod.POST, value="/callMe")
public String myMethod(@ModelAttribute MyClass myObj, Model model) {
if (myObj.getIsGotMyObj()){
//Got model attribute
//Method 1
}else{
//Method 2
}
return "callme";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11000 次 |
| 最近记录: |