如何在Spring boot + JSP

时间:2018-06-13 06:11:53

标签: spring spring-mvc jsp spring-boot

这是我的模态,

public class Mymodel{
    private String name;
    private Details details;
                             //getters and setters
    .........................
}

这是我的控制器,

  @GetMapping("/form")
    public ModelAndView formGet(ModelMap model) {
        Mymodel mymodel = new Mymodel();

        .....bla bla bla....

        priceSearch.setDetails(anotherObj);

        model.addAttribute("mymodel", mymodel);
        return new ModelAndView("form",model);
    }

    @PostMapping("/form")
    public ModelAndView pricePost(
            @Valid @ModelAttribute("mymodel") Mymodel mymodel,
            BindingResult bindingResult,
            Model model) {
            //can see the inside data of mymodel object when debugging..

            modelAndView.setViewName("result");
            return modelAndView;
    }

这是我的观点, form.jsp

   <form:form action="/form" commandName="mymodel"
                   method="POST" name="priceform"
                   enctype="multipart/form-data" novalidate="novalidate">


                <div class="form-group">
                    <div class="col-md-6">
                        <div class="form-group">
                            <label for="name">name:</label>
                            <form:input path="name"  cssClass="form-control input-sm" maxlength="20"/>
                        </div>
                    </div>
                </div>
                  <div class="row">
                    <div class="col-md-2 col-md-offset-10">

                                    <input type="submit"  value="Submit"
                                           class="btn btn-primary col-md-12" />
                        </div>
                    </div>
                </div>
        </form:form>

请注意,Mymodel有两个字段名称和详细信息,Details是一个非常复杂的类,我在get方法中填充它。我只想更新的是表单中的名称字段。但是当我提交表格时,细节数据不可用。似乎Mymodel不是一个持续的对象。如何建立连接。即使在表单字段中不可用,我也想从post方法访问详细信息数据。

1 个答案:

答案 0 :(得分:0)

使用@SessionAttributes(COMMAND_NAME)