私はeventLinkを使用しています。t:context を使用して、String やその他のプリミティブ型を渡すことができます。しかし、t:context を使用してオブジェクト全体を渡したいです。「タイプ java.lang.String からタイプ test.ViewUsers への強制変換が見つかりませんでした」というエラーが表示されます。valueEncoder を使用していますが、呼び出されません。
ここに私のtmlファイルがあります
<table width="100%" t:type="grid" t:id="list" t:source="users" t:row="rowUser" encoder="encoder"
t:model="beanModel"
t:add="action"
t:zone="^"
>
<p:actionCell >
<a t:type="eventLink" t:event="review" t:context="[rowUser]" href="#" encoder="encoder">
Testing
</a>
これが私のJavaファイルです。valueEncoder は呼び出されません。logger.error は何も出力しませんでした。
boolean onReview(ViewUsers object) {
logger.error("Testing. Inside onReview");
return false;
}
public ValueEncoder<ViewUsers> getEncoder()
{
return new ValueEncoder<ViewUsers>()
{
@Override
public String toClient(ViewUsers user)
{
logger.error("Testing. Inside toClient");
if(user == null)
{
return null;
}
return user.getId().toString();
}
@Override
public ViewUsers toValue(String clientValue)
{
logger.error("Testing. Inside toValue");
for(ViewUsers user : users)
{
if(user.getId().toString().equals(clientValue))
{
return user;
}
}
return null;
}
};
}
どんな助けでも大歓迎です。ありがとう。