2013-06-12 32 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

相關問題