Java 在Spring控制器方法中使ModelAttribute可选
我有一个控制器方法定义如下-Java 在Spring控制器方法中使ModelAttribute可选,java,spring,spring-mvc,model-view-controller,Java,Spring,Spring Mvc,Model View Controller,我有一个控制器方法定义如下- @RequestMapping(method = RequestMethod.POST, value="/callMe") public String myMethod(@ModelAttribute MyClass myObj, Model model) { //Do something } 即使我没有传递ModelAttribute myObj,我如何使上面的控制器方法被调用 我不想在没有它的情况下创建另一个控制器并复制功能。模型属性已经是可选的。即使
@RequestMapping(method = RequestMethod.POST, value="/callMe")
public String myMethod(@ModelAttribute MyClass myObj, Model model) {
//Do something
}
即使我没有传递ModelAttribute myObj,我如何使上面的控制器方法被调用
我不想在没有它的情况下创建另一个控制器并复制功能。模型属性已经是可选的。即使不传递模型属性,也会创建myObj。所以检查
if(myObj == null){
//Do method1
}else{
//Do method2
}
这是行不通的
试试这个。在myClass中创建一个布尔值,如下所示
private Boolean isGotMyObj = false;
<input type="hidden" value="1" name="isGotMyObj" />
在jsp(提交模型属性)中添加如下隐藏输入
private Boolean isGotMyObj = false;
<input type="hidden" value="1" name="isGotMyObj" />
如果您需要一个有模型和没有模型的,并且具有相同的功能,您可能需要重新考虑(部分)您的设计。此外,模型属性已经是可选的,将创建一个新实例(取决于您最初创建/存储模型属性的方式)