この記事に従って、hostpageを使用して配列をクライアントに渡しました。
https://developers.google.com/web-toolkit/articles/dynamic_host_page
現在、firebugでフォローコンテンツを見ることができます
<html style="overflow: hidden;">
<head>
......
<script type="text/javascript">
var rcmdFriends=[{"Name":"Friend-0","Image":"url"}];
</script>
</head>
......
</html>
次に、これらのコードを使用して、ホストページからjs変数(実際にはjson配列)を取得し、ユーザーに出力しようとしました。
//get array from host page
private native JsArrayExt<People> getRecommendedFriends()/*-{
return $wnd.rcmdFriends;
}-*/;
@Override
public void onModuleLoad()
{
final FlowPanel fPanel = new FlowPanel();
JsArrayExt<People> channels = getRecommendedFriends();
for (int i = 0, len = channels.length(); i < len; i++)
{
//"print" name to user
fPanel.add(new Label(channels.get(i).getName()));
}
RootPanel.get().add(fPanel);
}
//model definition
@SingleJsoImpl(PeopleImpl.class)
public interface People extends HasName
{
String getImage();
void setImage(String Image);
}
しかし、この誤りを手に入れました:
java.lang.ClassCastException: com.google.gwt.core.client.JavaScriptObject$ cannot be cast to com.pkg.People
不思議なことに、「チャネル」の長さが1であることがすでにわかりますが、なぜこのキャストエラーが発生するのですか?この問題を解決するにはどうすればよいですか?