我正在使用Spring和Thymeleaf。在用戶註冊表單中,我將內容發佈到特定的URL。在春天我正在檢查是否有一些錯誤發生。所以如果有一些錯誤,我會添加一些用來顯示錯誤的屬性。比我不想讓Spring在任何地方重定向。我想讓他更新模型,不要做別的。我有能力實現這個目標嗎?我不想讓Spring重定向
控制器
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(@ModelAttribute Person person, Model model){
model = loginPageService.register(person, model);
return "loginPage";
}
服務
public Model register(Person person, Model model){
//check if user exists
Person existingPerson = personService.findByEmail(person.getEmail());
if(existingPerson != null){
model.addAttribute("emailUsedError", true);
}
else{
personService.save(person);
model.addAttribute("registered", true);
}
return model;
}
一些HTML的
<div id="singup">
<p class="error" th:if="${registerError}">Wypełnij wszystkie pola!</p>
<p class="error" th:if="${emailUsedError}">Podany email został już użyty!</p>
<form th:action="@{/register}" th:object="${person}" method="post" onsubmit="return checkPassword(this)">
<input type="text" id="imie" name="firstName" placeholder="Imię" onfocus="this.placeholder=''"
onblur="this.placeholder='Imię'" required>
<input type="text" id="nazwisko" name="lastName" placeholder="Nazwisko" onfocus="this.placeholder=''"
onblur="this.placeholder='Nazwisko'" required>
<input type="text" id="identityNumber" name="identityNumber" placeholder="Nr. indeksu" onfocus="this.placeholder=''"
onblur="this.placeholder='Nr. indeksu'" required>
<input type="email" id="email" name="email" placeholder="[email protected]"
onfocus="this.placeholder=''" onblur="this.placeholder='[email protected]'" required>
<input type="password" id="password" name="password" placeholder="Hasło" onfocus="this.placeholder=''"
onblur="this.placeholder='Hasło'" required>
<input type="password" id="confirm_password" name="confirm_password"
placeholder="Potwierdź hasło" onfocus="this.placeholder=''" onblur="this.placeholder='Potwierdź hasło'" required>
<input type="submit" value="Zarejestruj">
</form>
</div>
您可以使用一個AJAX請求。 – reos
爲什麼Spring會重定向?如果你的意思是你不想讓瀏覽器加載一個新頁面,那麼你需要使用AJAX。 –