2017-09-21 21 views
0

私は可能な限りすべてを試しましたが、解決策は自分自身が好きではありません。'org - Thymeleaf-Springのオブジェクトにフィールドまたはプロパティが見つかりません。

私はSpring FrameworkとThymeleafを使用しています。以下のように私のデータベースからデータをフェッチTYO:私のエンティティクラスでは、私は、私は番目の使用しています

public class Subscriber { 

@Id 
@GeneratedValue(strategy=GenerationType.AUTO) 
private long id; 

@Column(name= "firstname") 
private String firstname; 

@Column(name= "lastname") 
private String lastname; 

@Column(name= "email") 
private String email; 

public Subscriber() 
{ 

} 

以下とThymeleafのように民間としての私の属性を宣言し

<tr th:each="subscriber : ${subscribers}"> 
     <td th:text="${subscriber.firstname} + ' ' + ${subscriber.lastname}"></td> 
     <td th:text="${subscriber.email}"></td> 

私は、コードを実行します実行時に次のエラーが発生します。

org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'firstname' cannot be found on object of type '' - maybe not public? 

変更者をpublicに変更すると、すべて正常に動作し、データが表示されます。しかし、私はこれがエンティティをモデル化する最良の方法だとは思わない。私は、今後自分のコードベースにアクセスできる第三者に注意する必要があり、コードを修正して私に損害を与えないようにします。

したがって、この変更をバイパスする方法を経験したことがある方は、変更をprivateからpublicに変更する必要はありません。

ご協力いただければ幸いです。

+0

を使用してみてください。 –

+0

私は既にエンティティにgetterとsetterを持っています。 – olammy

答えて

0

パブリックフィールドスコープを持っている場合は、ちょっと変わっています。しかし、私が見ているのは、あなたの表現が正しくないということです。

は、私は確かに知っているが、あなたのエンティティにゲッターを追加しようとしません<td th:text="${subscriber.firstname + ' ' + subscriber.lastname}"></td>

関連する問題