2015-03-19 36 views
0

我的索引頁面包含一個可見的登錄表單和一個隱藏的註冊表單(兩個切換可見性)。當用戶註冊並且有一些驗證錯誤時,他們返回到索引頁面。但是,默認情況下,他們會看到登錄頁面。控制器如何告訴索引頁面運行一些javascript代碼(只是爲了隱藏登錄和顯示註冊)?Spring MVC控制器運行javascript

@RequestMapping(value="/register", method=RequestMethod.POST) 
    public String addNewUser(@Valid @ModelAttribute("registerForm") RegisterForm registerForm, 
       BindingResult result, Model model, HttpServletRequest request){ 

     if(result.hasErrors()){ 
      model.addAttribute("error", true); 
      System.out.println("ERROR"); 
      return "index"; 
     }  
     return "index"; 
    } 
+0

爲什麼要按js切換可見性?你可以簡單地使用你的視圖的模板引擎。 – 2015-03-19 09:22:04

+0

我正在做一個測試應用程序以獲得工作,這是我第一次使用任何類型的java web開發(來自asp.net),所以我不知道發生了什麼 – 2015-03-19 09:33:47

+0

好的,在'index'頁面中,您使用了什麼樣的視圖技術(例如jsp,velocity,thymeleaf,...) – 2015-03-19 10:51:35

回答

1

如果你只是想顯示你的模板的一部分或其他,那麼就沒有必要使用javascript。您已經將適當的標誌傳遞給您的視圖(您的error屬性)。

在你看來,你可以使用JSP choose聲明(排序的xmlified開關)來選擇部分顯示:

<c:choose> 
    <c:when test="${!error}"> 
    <!-- Login code here (your 'no error' case) --> 
    </c:when> 
    <c:otherwise> 
    <!-- Registration code here (your 'error' case) --> 
    </c:otherwise> 
</c:choose> 

或(在我看來更清潔),你可以創建兩個視圖,並選擇在您的控制器中有一個:

@RequestMapping(value="/register", method=RequestMethod.POST) 
public String addNewUser(
     @Valid @ModelAttribute("registerForm") RegisterForm registerForm, 
     BindingResult result, 
     Model model){ 

    if(result.hasErrors()) { 
     return "registration"; 
    }  
    return "index"; 
} 
0

您可以使用要在模型中添加的error屬性。您可以在javascript中檢查其值,並根據此值更改可見性。