2016-09-22 67 views
2

をレンダリングすることができない私は春/ Thymeleaf:プロパティまたはフィールドがnullで見つかったが、それでも

org.springframework.expression.spel.SpelEvaluationException: EL1007E:(pos 0): Property or field 'projectName' cannot be found on null

はしかし、ページが通常に見える春/ Thymeleafアプリを持っています。すべての変数はデータでレンダリングされます。私は、例外がすべての要求にスローされていることを懸念しています。

@Controller 
    @RequestMapping("/download") 
    public class AppDownloaderController { 
     @Autowired 
     InstallLinkJoinedService installLinkJoinedService; 


    @RequestMapping(value = "/link/{installLink}", method = RequestMethod.GET) 
    public String getInstallLink (Model model, @PathVariable("installLink") String installLink) { 
     InstallLinkJoined installLinkJoined = installLinkJoinedService.getInstallLinkWithID(installLink); 
     if (installLinkJoined != null) { 
      model.addAttribute("install", installLinkJoined); 
     } 
     return "download"; 
    } 

} 

問題のHTMLのスニペット:

<h3 class="achievement-heading text-primary" th:text="${install.projectName}"></h3><br/> 

フィールドはInstallLinkJoinedオブジェクトの一部です:

@Column(nullable = false) 
    private String projectName; 

そして、私が持っている。ここ

はコントローラであり、 gettersとsettersをすべてのフィールドに適用します。

違反行をコメントアウトすると、次の変数で例外が発生します。

そして、前述したように、ページ内のすべてのデータには、明らかにモデルオブジェクトがnullではないまで見せている...

私は何をしないのですか?

答えて

3

あなたはそれがnullだならば、何も&、あなたがJSP th:text="${install.projectName}"であることを取っているので、それはcannot be found on nullを言っている初期化されず、nullをチェックすることにより、install属性を追加しています。

だから、魔法のように働いて

InstallLinkJoined installLinkJoined = installLinkJoinedService.getInstallLinkWithID(installLink); 
if (installLinkJoined != null) { 
    model.addAttribute("install", installLinkJoined); 
} else { 
    model.addAttribute("install", new InstallLinkJoined()); 
} 
+0

に変更! – AppCrafter

関連する問題