Ich bin ziemlich neu mit Freemarker und ich arbeite an einem Spring MVC Anwendung, die Freemarker als Template-Engine verwenden.Warum erhalte ich diesen Fehler, wenn ich einen Null-Wert in das Spring MVC-Modellobjekt einfüge? java.lang.IllegalArgumentException: Wert Attribut darf nicht null sein
So habe ich das folgende Problem tryng, um einen Nullwert in das Modell und versuchen, es in meine FreeMarker Seite auszuwerten.
So habe ich die folgende Controller-Methode:
@RequestMapping(value = "/sso/login", method = RequestMethod.POST)
public String loginPost(HttpServletResponse response, @ModelAttribute DoLoginCommand command,
@ModelAttribute("redirect") String redirect, Model model) {
...................................................................
...................................................................
...................................................................
if (statusPasswordView.getDataWarning() != null && statusPasswordView.getDataWarning().before(new Date())) {
model.addAttribute(MA_EXPIRE_DATE, dataScadenza);
if(redirect.equals("")) {
model.addAttribute("redirect", null);
}
else {
model.addAttribute("redirect", redirect);
}
return "/sso/password-toexpire";
}
...................................................................
...................................................................
...................................................................
}
So, wie Sie im vorherigen Codeausschnitt sehen, die loginPost() Methode erhält als Parameter dieses String @ModelAttribute ("Umleitung") String redirect (das ist ein @SessionAttributes meiner Controller-Klasse, aber ich denke, dass das jetzt nicht wichtig ist).
Wenn der Wert der Variable umlenken ist eine leere Zeichenfolge (die „“ string) I im Modell legte ein attribite null umleiten genannt als Wert. Sonst, wenn die Umleitung Zeichenfolge ist nicht die leere Zeichenfolge, die ich Wert als Wert der vorherigen Umleitung Modellattribut.
Dann in meine Freemarker Seite (mit dem Namen Passwort-toexpire.ftl) ich:
<#if redirect??>
<a href="<@spring.url '/profilo/home' />" class="btn btn-block btn-success submit-btn">Continua la navigazione</a>
<#else>
<a href="${redirect}" class="btn btn-block btn-success submit-btn">Continua la navigazione</a>
</#if>
Also, auf dieser Seite, ich bin Überprüfung, ob die Umleitung Attribut ist null oder kein anderes Element in mein endgültiges HTML zu rendern.
Das einzige Problem ist, dass, wenn meine Passwort-toexpire.ftl Seite zurückgegeben I thi Fehlermeldung in die Eclipse-Stack-Trace erhalten:
14:48:44,092 ERROR [it.mycompany.myprogjet.mypackage.base.SsumExceptionHandlerControllerAdvise] (http-localhost/127.0.0.1:8080-1) Attribute value must not be null: java.lang.IllegalArgumentException: Attribute value must not be null
So scheint es, dass im Frühjahr kann ich nicht setzen Null Attribut in die Modell onject, aber es scheint mir seltsam.
Warum? Was ist das Problem? Was vermisse ich? Wie kann ich dieses Problem lösen?