在Spring MVC中返回与表单相同的JSP中的表单变量

时间:2016-10-30 02:10:49

标签: spring jsp spring-mvc

我正在开发一个简单的网络应用程序,部分内容是搜索。目前我只是尝试从搜索中返回表单变量,并在用户点击提交后将其显示在搜索页面上。

HTML:

<form:form modelAttribute="Search" action="performSearch" method="post" class="form-horizontal">
                        <fieldset>
                                  <div class="form-bottom">
                                    <div class="form-group">
                                        <select class="form-control" id="profession" name="profession">
                                            <option value="General Contractor">General Contractor</option>
                                            <option value="Plumber">Plumber</option>                                        
                                        </select>
                                    </div>
                                    <div class="form-group">

                                        <form:input path="zipcode" type="text" name="form-zip" placeholder="Zipcode..." class="form-control"></form:input>
                                    </div>                                  
                                    <div class="input-group">
                                         <span class="input-group-addon">$</span>

                                        <form:input path="cost" type="text" name="form-cost" placeholder="Max Cost per Hour..." class="form-control"></form:input>
                                    </div>  
                                    <br>

                                    <input type="submit" class="btn btn-default custom_btn" value="Search">

                                </div>
                            </fieldset>
                    </form:form>

搜索后要显示的HTML。

    <c:if test="${not empty test1}">
                test1       
    </c:if>             
    <c:if test="${not empty test2}">
                test2       
    </c:if> 
    <c:if test="${not empty test2}">
                test3       
    </c:if> 

search.jsp的控制器。

 @RequestMapping(value="/performSearch")
    public ModelAndView performSearch(@ModelAttribute("search")Search search, ModelMap model) {


        model.addAttribute("test1",search.getCost());
        model.addAttribute("test2",search.getProfession());
        model.addAttribute("test2",search.getZipcode());


        return new ModelAndView("search");

    }

我认为在这一点上我只是想弄清楚要归还什么。我想要返回ModelAndView吗?

编辑:

所以我忘了返回模型和模型对象。在这种情况下,

返回新的ModelAndView(“搜索”,“搜索”,新搜索());

搜索是我创建的用于保存变量的对象。

2 个答案:

答案 0 :(得分:0)

是的,模型和视图对象将采用构造函数中传递的视图的名称。在这种情况下是一个JSP。视图解析器将为我们连接在一起。模型内容将在JSP中提供。在你的情况下search.jsp。模型和视图对象只是将模型数据与视图相结合的便捷方式。您也可以通过不同的方式创建它们。你在正确的道路上。

答案 1 :(得分:0)

我创建模型并以这种方式查看

ModelAndView mav = new ModelAndView(“someview”);

mav.addObject(“someobject”,myObject);

return mav;

然后,您可以使用EL

从someview.jsp隐式访问某个对象