2013-06-12 30 views
0

我的要求是根据所选择的值,返回图(选择表格)弹簧MVC 3的ModelAndView:控制器方法返回几个视图

view.jsp的:

 <form method="post" action="/aaa"> 
         <select id="attr1" name="attr1"> 

          <option value="1">A</option> 
          <option value="2">B</option> 

         </select> 
        <input type="submit" value="submit" /> 
</form> 

如果选择的值是A (1)被选中,view1是要显示的视图,否则显示view2。

控制器的方法:

@RequestMapping(value = "/aaa", method = RequestMethod.POST) 
public ModelAndview methodName (HttpServletRequest request, 
     HttpServletResponse response){ 

    attribute=request.getParameter("attr1"); 

    if (attribute==1) return new ModelAndView("view1") 
    else if (attribute==2) return new ModelAndView ("view2") 

    } 

我该怎么办呢? 谢谢。

+0

你必须吨的语法错误。此外,还有一件事是缺失的:如果是'1',那么'view1'。如果是'2',那么'view2'。如果**不是**'1'或'2'会怎么样?它应该是什么样的观点? – acdcjunior

+0

thnk你的答复,这是方法:)只是逻辑,我刚才已经2次,以显示(如果选择1视图1,视图2,如果选择2) – RaisMEd

+0

@acdcjunior问你什么什么选择? 。 – g00glen00b

回答

1

多个视图是完全可能的。

考虑到HTML:

<select id="attr1" name="attr1"> 
    <option value="1">A</option> 
    <option value="2">B</option> 
</select> 

此后,控制方法应该是:

@RequestMapping(value = "/aaa", method = RequestMethod.POST) 
public ModelAndView methodName(@RequestParam(value = "attr1") int attribute) { 
    if (attribute == 1) { 
     return new ModelAndView("view1"); 
    } 
    else if (attribute == 2) { 
     return new ModelAndView("view2"); 
    } 
    else { 
     return null; // Empty 200 OK just to be sure if other attr is received 
    } 
} 
+0

好的,我在尝试,thnks – RaisMEd

+0

如果您必须使用'HttpServletRequest'和'HttpServletResponse'告诉我。上面的答案很简单。 – acdcjunior

+0

我使用HttpServletRequest从视图中获取参数。 – RaisMEd

相关问题