struts 2はJson形式のデータを返し、Listにオブジェクトフロントエンドが含まれているのに空のJsonを受信した問題について
1822 ワード
一、問題の説明
mvcフレームstruts 2を使用する場合、json形式のデータをフロントエンドに返す必要がある場合があります.しかし、一度に1つのListが返され、汎用が1つのエンティティである場合(例List messages)、フロントエンドが受信したjson配列は空である.
Actionにもこの属性のgetterメソッドが追加され、struts.xmlのactionの構成は次のとおりです.
二、問題分析
資料を検索する過程でstruts 2が返すタイプがjsonであることを知った完全な構成パラメータは以下の通りである.ここで、プロパティ構成を行わない場合、デフォルトでは、戻り値のあるgetterメソッドの戻り値がすべてシーケンス化されます.属性rootは、どこからシーケンス化を開始するかを示し、図のようにdataMapのみシーケンス化する属性 を示す.プロパティincludePropertiesは、複数のプロパティが含まれている場合、カンマを使用して を分割する必要があるプロパティを表します.
その他のプロパティの意味は図のコメントを参照してください.ここではincludePropertiesプロパティのみに注目します.
三、結論
上図の構成と組み合わせてincludePropertiesのプロパティ値を
struts 2リストタイプの属性をシーケンス化する場合、デフォルトでは属性そのもののみがシーケンス化されますが、リストタイプ属性に保存されているオブジェクトをシーケンス化する必要がある場合は、自分で指定する必要があります
リストタイプ属性のシーケンス化が必要なオブジェクトを指定する場合、以下のように構成できます.
mvcフレームstruts 2を使用する場合、json形式のデータをフロントエンドに返す必要がある場合があります.しかし、一度に1つのListが返され、汎用が1つのエンティティである場合(例List messages)、フロントエンドが受信したjson配列は空である.
{"messages":[]}
Actionにもこの属性のgetterメソッドが追加され、struts.xmlのactionの構成は次のとおりです.
messages
二、問題分析
資料を検索する過程でstruts 2が返すタイプがjsonであることを知った完全な構成パラメータは以下の通りである.ここで、プロパティ構成を行わない場合、デフォルトでは、戻り値のあるgetterメソッドの戻り値がすべてシーケンス化されます.
その他のプロパティの意味は図のコメントを参照してください.ここではincludePropertiesプロパティのみに注目します.
dataMap
true
userList.*
userId
三、結論
上図の構成と組み合わせてincludePropertiesのプロパティ値を
messages.*
に構成し、フロントエンドはmessagesリストの値を正常に取得しました.結論を出すことができます.struts 2リストタイプの属性をシーケンス化する場合、デフォルトでは属性そのもののみがシーケンス化されますが、リストタイプ属性に保存されているオブジェクトをシーケンス化する必要がある場合は、自分で指定する必要があります
リストタイプ属性のシーケンス化が必要なオブジェクトを指定する場合、以下のように構成できます.
list.*
list\[\d+\]\.id,list\[\d+\]\.name