struts2でJSONデータを受け取る方法は?
Struts2では、JSONプラグインを使用してJSONデータを受信することができます。以下はJSONデータを受信する手順です。
- まず、プロジェクトにstruts2-json-pluginプラグインが導入されていることを確認してください。Mavenを使用するか、手動でダウンロードしてインポートすることができます。
- Struts2の設定ファイル(通常はstruts.xml)に以下の設定を追加してください。
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<package name="json" extends="json-default">
<action name="yourAction" class="com.yourpackage.YourAction">
<result type="json" />
</action>
</package>
上記の構成では、yourActionは指定されたアクションの名前し、com.yourpackage.YourActionは指定されたアクションのクラスを指します。
- Actionクラスに、JSONデータを受け取るための属性とそれに対応するgetterとsetterメソッドを追加してください。例:
private Map<String, Object> jsonData;
public Map<String, Object> getJsonData() {
return jsonData;
}
public void setJsonData(Map<String, Object> jsonData) {
this.jsonData = jsonData;
}
- @JSON を日本語で書き直すと、「@JSON」です。
@Action(value = "yourAction", results = { @Result(name = "success", type = "json") })
public String execute() {
// 在这里处理接收到的JSON数据
System.out.println(jsonData);
return "success";
}
上記の例では、jsonData属性は受け取ったJSONデータをMapオブジェクトとして保存し、メソッドの実行中にそれをプリントアウトします。
- ActionへのリクエストにJSONデータを送信します。AJAXやPostmanなどのツールを使用してHTTPリクエストを送信し、JSONデータをリクエストボディとして送信できます。
以上の手順を完了すると、Struts2は自動的に受信したJSONデータを指定された属性タイプに変換し、実行メソッドで使用します。