[JAVA] Ändern Sie die Spring Boot-Validierungsnachricht

Einführung

Es ist ein Memorandum, die Nachricht zu ändern, wenn die Validierungsprüfung mit Anmerkungen im Frühjahrsstart durchgeführt wird

Umweltinformationen

Spring Boot 1.5.4(Maven)

Quelle

Controller, Formular, Ansicht erstellen

LoginController.java


@Controller
@RequestMapping({"/", "/login"})
public class LoginController extends BaseController {

	@ModelAttribute
	public LoginForm initForm(){
		return new LoginForm();
	}

	@RequestMapping(value = {"/index", "/"}, method = RequestMethod.GET)
	public String index(Model model){
		return "test/index";
	}

	@RequestMapping(value = "/login", method = RequestMethod.POST)
	public String login(@ModelAttribute @Validated TestForm form, BindingResult result, Model model)
	{
		if(result.hasErrors()){
			return "test/index";
		}

		//Anmeldevorgang
		......

		return "redirect:/menu/index";
	}
}

LoginForm.java


public class LoginForm extends BaseForm {

	@NotEmpty
	public String userId;
	@NotEmpty
	public String password;

	/*Getter zur Verwendung mit Thymeleaf/brauche Setter*/
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}

}

login/index.html


<!DOCTYPE html>
<html
	xmlns        = "http://www.w3.org/1999/xhtml"
	xmlns:th     = "http://www.thymeleaf.org"
	xmlns:layout = "http://www.ultraq.net.nz/thymeleaf/layout"
	layout:decorator="layout"
>
<head>
	<title>Einloggen</title>
</head>
<body>
	<div layout:fragment="contents">
		<form class="form-horizontal" method="POST" action="/login/login/" th:action="@{/login/login}" th:object="${loginForm}">
			<div class="form-group">
				<p th:if="${#fields.hasErrors('*{userId}')}" th:errors="*{userId}" class="col-sm-offset-2 text-danger"></p>
				<label for="user-id" class="col-sm-2 control-label">Benutzeridentifikation</label>
				<div class="col-sm-5">
					<input type="text" class="form-control" id="user-id" th:field="*{userId}" placeholder="Benutzeridentifikation" />
				</div>
			</div>
			<div class="form-group">
				<p th:if="${#fields.hasErrors('*{password}')}" th:errors="*{password}" class="col-sm-offset-2 text-danger"></p>
				<label for="password" class="col-sm-2 control-label">Passwort</label>
				<div class="col-sm-5">
					<input type="password" class="form-control" id="password" th:field="*{password}" placeholder="Passwort" />
				</div>
			</div>
			<div class="form-group">
				<input type="submit" class="btn btn-primary col-sm-2 col-sm-offset-2" name="login" value="Einloggen" />
				<input type="reset" class="btn btn-default col-sm-2 col-sm-offset-1" name="clear" value="klar" />
			</div>
		</form>
	</div>
</body>
</html>

Erstellen Sie als Nächstes eine Klasse, die "WebMvcConfigurerAdapter" erbt Es scheint, dass die Nachricht UTF-8 standardmäßig nicht unterstützt Stellen Sie die Codierung auf UTF-8 ein

AppConfigurerAdapter.java


@Configuration
public class AppConfigurerAdapter extends WebMvcConfigurerAdapter {

	@Bean(name="validator")
	public LocalValidatorFactoryBean localValidatorFactoryBean() {
		LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
		localValidatorFactoryBean.setValidationMessageSource(messageSource());
		return localValidatorFactoryBean;
	}

	/**
	 *Validierungsnachricht UTF-Verwalten mit 8.
	 * @return
	 */
	@Bean(name = "messageSource")
	public MessageSource messageSource()
	{
		ReloadableResourceBundleMessageSource bean = new ReloadableResourceBundleMessageSource();
		bean.setBasename("classpath:ValidationMessages");
		bean.setDefaultEncoding("UTF-8");
		return bean;
	}

}

Erstellen Sie als Nächstes eine Eigenschaftendatei, die die Validierungsnachricht direkt unter dem Ordner "resource" beschreibt. Der Dateiname sollte der in "AppConfigurerAdapter.java" angegebene Dateiname sein. Der Schlüssel der Nachricht gibt den vollständigen Namen der Anmerkung an. Der Feldname wird in {0} der Nachricht eingegeben Wenn Sie dem Feldnamen einen Alias geben möchten, legen Sie auch den Feldnamen fest

ValidationMessages.properties


#Botschaft
org.hibernate.validator.constraints.NotEmpty.message={0}Bitte eingeben.

#Feldname
userId=Benutzeridentifikation
password=Passwort

Versuche zu rennen

Dies ist das Ergebnis des Drückens der Anmeldetaste, ohne die Benutzer-ID und das Kennwort auf dem Anmeldebildschirm einzugeben. login.png

Recommended Posts

Ändern Sie die Spring Boot-Validierungsnachricht
Wichtige Änderungen in Spring Boot 1.5
Nachricht erlöschen (Spring Boot)
Erhalten Sie Validierungsergebnisse mit Spring Boot
Die Nachrichtenkooperation begann mit Spring Boot
[Einführung in Spring Boot] Überprüfung der Formularvalidierung
Fordern Sie Spring Boot heraus
Änderungen bei der Migration von Spring Boot 1.5 auf Spring Boot 2.0
Änderungen bei der Migration von Spring Boot 2.0 zu Spring Boot 2.2
Spring Boot Form
Spring Boot Denken Sie daran
gae + frühlingsstiefel
Formularklassenvalidierungstest mit Spring Boot
[FCM] Implementierung der Nachrichtenübertragung mit FCM + Spring Boot
[Java] Artikel zum Hinzufügen einer Validierung mit Spring Boot 2.3.1.
SPRING BOOT Lernaufzeichnung 01
Frühlingsstiefel + Heroku Postgres
Schreiben von Frühlingsstiefel-Memos (1)
Erster Frühlingsstiefel (DI)
Spring Boot2 Spickzettel
Spring Boot Servlet-Zuordnung
Spring Boot-Lernverfahren
Schreiben von Spring Boot-Memos (2)
[Spring Boot] DataSourceProperties $ DataSourceBeanCreationException
Selbstgemachte Validierung mit Spring
Spring Boot 2.3 Verfügbarkeit von Anwendungen
Spring Boot Tutorials Themen
Mit Spring Boot herunterladen
Die Nachrichtenkooperation begann mit der Spring Boot Apache Kafka Edition
[JUnit 5] Schreiben Sie einen Validierungstest mit Spring Boot! [Parametrisierungstest]
[Spring Boot] Umgebungskonstruktion (macOS)
Legen Sie den Kontextparameter in Spring Boot fest
Versuchen Sie Spring Boot von 0 bis 100.
Generieren Sie mit Spring Boot einen Barcode
Federvalidierung und Fehlercode
Hallo Welt mit Spring Boot
Spring Boot unter Microsoft Azure
Implementieren Sie GraphQL mit Spring Boot
Beginnen Sie mit Spring Boot
[Spring Boot] Verschieben Sie die Validierung (@Validated / @Valid) jederzeit [BeanValidation]
Hallo Welt mit Spring Boot!
Spring Boot 2 Multiprojekt mit Gradle
[Spring Boot] Erstellung von Webanwendungen
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Spring Boot Hot Swapping-Einstellungen
[Java] Thymeleaf Basic (Spring Boot)
Einführung in Spring Boot ~ ~ DI ~
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
CICS-Java-Anwendung ausführen- (4) Spring Boot-App
Spring Boot beginnend mit Docker
Spring Boot + Springfox Springfox-Boot-Starter 3.0.0 Verwendung
Tipps zur Spring Boot DB
Hallo Welt mit Spring Boot
Setzen Sie Cookies mit Spring Boot
[Spring Boot] Einfaches Rezept für den Paging-Prozess
Verwenden Sie Spring JDBC mit Spring Boot
Aufbau der Docker x Spring Boot-Umgebung
Modul mit Spring Boot hinzufügen