0

アプリケーションが org.springframework.expression.spel.SpelEvaluationException: EL1007E:(pos 0): Property or field 'title' cannot be found on null をスローします

なぜなのか理解できません...これは、マスターによって呼び出されたhtmlスニペットです。

<title th:fragment="title">Surveys Feed</title>
<div th:fragment="content" th:each="surv : ${allSurveys}" >
    <div id="surv-ct" style="min-width: 310px; max-width: 800px;     height:400px; margin: 0 auto">
    <script th:inline="javascript">
       /*<![CDATA[*/
           $('#surv-ct').highcharts({
               chart: {
                   type: 'bar'
               },
               title: {
                   text: [[${surv.title}]]
               },
             // ... other stuff 
    </script>
  </div>
</div>

しかし、アプリケーションが起動されると、フィールドのタイトルは null ではありません! ここでは、オブジェクト allSurveys のマッピングがあり、リポジトリからすべての調査を取得してリストを返します。

@ModelAttribute("allSurveys")
public List<Survey> allSurveys() {
    List<Survey> surveys = new Surveys(repo.findAll()).getSurveys();
    // print surveys titles
    for (int i = 0; i < surveys.size(); i++) {
        Survey sur = surveys.get(i);
        System.out.println("Survey info: " + sur.getTitle());
    }
    return surveys;
}

証拠として、アンケートのタイトルがコンソールに出力されていることがわかります: コンソール出力

そして、それらはデータベース 調査データベースに存在します

では、なぜそれが null であると言うのでしょうか? インターネットでさまざまな回答を見てきましたが、私の場合の解決策はないようです。

よろしくお願いいたします。

編集: 提案で、オブジェクト ${surv} を印刷しようとしました。内部 div の「surv-ct」属性を ID からクラスに変更しました。

<div th:fragment="content" th:each="surv : ${allSurveys}" >
    <div class="surv-ct" style="min-width: 310px; max-width: 800px; height: 400px; margin: 0 auto">
        <p>Object is: <span th:text=${surv}>obj</span></p>
        <!--
        <script th:inline="javascript">
           /*<![CDATA[*/

               $('.surv-ct').highcharts({
                   chart: {
                       type: 'bar'
                   },
                   // ... more code
    -->
    </div>
</div>

Mozilla でコードを分析すると、これが結果です。

    <p>Object is: <span></span></p>
    <!--
    <script th:inline="javascript">
       /*<![CDATA[*/
           $('.surv-ct').highcharts({
                // ... more code that i deleted
                // it's commented anyway
      -->

まず、結果が 1 つだけ出力されます。次に、surv オブジェクトを取得しません。そのため、「タイトル」フィールドが null になっていると思います。では、なぜオブジェクトが null なのですか? なにか提案を?

4

1 に答える 1