在Java Web開發(fā)中,經(jīng)常需要向前端返回JSON格式的數(shù)據(jù)。在使用Struts2框架時(shí),可以通過(guò)Action來(lái)返回JSON數(shù)據(jù)。
要返回JSON數(shù)據(jù),需要先在項(xiàng)目中添加json-lib庫(kù),以便將Java對(duì)象轉(zhuǎn)換為JSON格式。可以通過(guò)Maven依賴或手動(dòng)導(dǎo)入jar包來(lái)添加庫(kù)。
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency>
在Action中,需要對(duì)返回結(jié)果進(jìn)行設(shè)置。可以通過(guò)繼承ActionSupport類,并重寫execute方法來(lái)實(shí)現(xiàn)。在方法中,需要?jiǎng)?chuàng)建一個(gè)JSONObject對(duì)象,并向其中添加需要返回的數(shù)據(jù)。
import com.opensymphony.xwork2.ActionSupport; import net.sf.json.JSONObject; public class MyAction extends ActionSupport { private JSONObject result; public String execute() throws Exception { result = new JSONObject(); result.put("message", "Hello World!"); return SUCCESS; } public JSONObject getResult() { return result; } }
在Struts2中,可以通過(guò)配置Result來(lái)返回JSON數(shù)據(jù)。可以在struts.xml文件中添加以下內(nèi)容:
<result name="success" type="json"> <param name="root">result</param> </result>
其中,type屬性指定返回的數(shù)據(jù)格式為JSON,root屬性指定返回的Java對(duì)象。
通過(guò)以上步驟,即可實(shí)現(xiàn)在Struts2中返回JSON數(shù)據(jù)。