两个@MdelAttributes导致了一些问题

时间:2015-10-08 10:11:18

标签: java forms spring-mvc modelattribute

我的一页中有两种形式,一种形式是

<form:form commandName="foo" class="form" action="/app/foo">
    <form:input id="name" path="name" type="text"/>
    <button>OK</button>
</form:form>

和其他形式是

<form:form commandName="bar" class="form">
    <form:input path="title"/>
    <form:input path="description"/>
    <button>OK</button>
</form:form>

当我提交第一个表单时,我想单独提交这些表单我将一些数据添加到第二个表单后将其重定向到同一页面我也提交了它,在我的控制器中我有

@Controller
public class FooBarController {     

    @ModelAttribute("foo")
    public Foo constructFoo() {
        return new Foo();
    }

    @ModelAttribute("bar")
    public Bar constructBar() {
        return new Bar();
    }       

    @RequestMapping(value = "/foo", method = RequestMethod.POST)
    public String addFoo(@ModelAttribute("foo") Foo foo) {
        fooService.save(foo);
        return "redirect:/foo";
    } 

    @RequestMapping(value = "/foo", method = RequestMethod.POST)
    public String addBar(@ModelAttribute("bar") Bar bar) {          
        barService.save(bar);   
        return "redirect:/";
    } 

}

在上面的方案中,执行addFoo()并保存Foo但是当我尝试在bar中保存addBar()时,它不保存任何内容,没有错误没有例外并且没有任何数据插入。

2 个答案:

答案 0 :(得分:0)

提及第二种形式的行动

<form:form commandName="bar" class="form" action="/app/bar">
    <form:input path="title"/>
    <form:input path="description"/>
    <button>OK</button>
</form:form>

答案 1 :(得分:0)

将第二个@RequestMapping(value = "/foo", method = RequestMethod.POST)更改为:

 @RequestMapping(value = "/bar", method = RequestMethod.POST)

并且正如Vipin cp所说:从你的作品中添加一个动作:

<form:form commandName="bar" class="form" action="/app/bar">
<form:input path="title"/>
<form:input path="description"/>
<button>OK</button>