2017-12-14 65 views
0

私は空ではないJava側のリストを持っています。しかし、フロントエンドでは、私はnullインデックスの例外があります。あなたは何か考えていますか?thymeleafのヌルインデックス例外が塗りつぶされたリスト

私はこのコードを持っている:

<div th:if="!${#strings.endsWith(partitions[__${rowPartitionStat.index}__].nom,'_in')}"> 

私も成功せずにこのコードを試してみました:最後の場合

<div th:if="!${#strings.endsWith(*{partitions[__${rowPartitionStat.index}__].nom},'_in')}"> 

私は解析の例外を持っているので、私は最初のものが優れていると思います。

最初の1つの原因この例外:

2017-12-14 15:23:28.937 ERROR 8272 --- [nio-8990-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "#strings.endsWith(partitions[0].instances[0].natures[0].nom,'_in')" (topologieCles:155)] with root cause 

org.springframework.expression.spel.SpelEvaluationException: EL1012E:(pos 9): Cannot index into a null value 
    at org.springframework.expression.spel.ast.Indexer.getValueRef(Indexer.java:142) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.springframework.expression.spel.ast.Indexer.getValueInternal(Indexer.java:89) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:57) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:87) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.springframework.expression.spel.ast.MethodReference.getArguments(MethodReference.java:154) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.springframework.expression.spel.ast.MethodReference.getValueRef(MethodReference.java:71) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:66) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:87) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:120) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:267) ~[spring-expression-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
    at org.thymeleaf.spring4.expression.SpelVariableExpressionEvaluator.evaluate(SpelVariableExpressionEvaluator.java:139) ~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE] 
    at org.thymeleaf.standard.expression.VariableExpression.executeVariable(VariableExpression.java:154) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE] 

数行後に、この行は正常に動作し、一方:ここ

<label th:text="*{partitions[__${rowPartitionStat.index}__].nom}" class="col-sm-4 control-label">...</label> 

はのpom.xmlからの抜粋です:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.2.RELEASE</version> 
</parent> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-actuator</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency> 

答えて

1

*{...}式は${...}式とは異なる動作をします。私は(あなたが確認するために十分なHTMLを投稿していない)を正確に伝えることはできませんが、私はこの表現があなたのために働くだろう推測している:

<div th:if="!${#strings.endsWith(#object.partitions[__${rowPartitionStat.index}__].nom,'_in')}"> 

あなたはNULLポインタへのアクセスを取得している理由を、ありますパーティションはおそらくモデル属性ではなくth:objectのプロパティであるためです。 *{...}の式では問題ありませんが、${...}式ではパス全体を指定する必要があります。そのため、特殊変数#objectを使用しています。

+0

偉大な、ilはうまく動作します、ありがとう! – jayjaypg22

関連する問題