【发布时间】:2016-06-09 15:50:17
【问题描述】:
我正在使用 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="example@google.com"
onfocus="this.placeholder=''" onblur="this.placeholder='example@google.com'" 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 请求。
-
为什么 Spring 会重定向?如果您的意思是您不希望浏览器加载新页面,那么您需要使用 AJAX。
标签: java spring spring-mvc thymeleaf