Struts2でjsonを返す方法

Struts2でjsonを返すには、アクションで変数を定義し、getメソッドを作成する必要があります。
1.以下は実行中のコードです

public class LoginJsonAction extends ActionSupport implements ModelDriven<User> {
    
    

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private User user;
	
	//用于返回消息
	private String message;
		

	@Override
	public User getModel() {
    
    
		if (user == null) {
    
    
			user = new User();
		}
		return user;
	}

	// 登录方法
	public String login() {
    
    
		if (user.getUserName().equals(user.getPassword())) {
    
    			
			return SUCCESS;
		}else {
    
    
			message="用户名和密码不匹配";
			return ERROR;
		}
	}
	
	//========getter方法==========
	public User getUser() {
    
    
		return user;
	}

	public String getMessage() {
    
    
		return message;
	}
}

2. struts.mxlで返されるjson形式を構成する方法は2つあります
(1)1つ目は、パッケージでjson-defaultを継承し、結果のサンプルコードで戻り値の型をjsonとして指定することです。

<!-- 返回json的第一种写法 -->
<package name="return-json" namespace="/json" extends="json-default">
	<action name="loginJsonAction" class="com.gx.web.LoginJsonAction">
		<result name="success" type="json">
			<param name="root">user</param>
		</result>
		<result name="error" type="json">
			<param name="root">message</param>
		</result>
	</action>
</package>

(2)2番目のタイプは、パッケージのサンプルコードでresult-typeを定義することです。

<!-- 返回json的第二种写法 -->
<package name="return-json" namespace="/json" extends="struts-default">
	<result-types>
		<result-type name="json" class="org.apache.struts2.json.JSONResult">
		
		</result-type>
	</result-types>
	<action name="loginJsonAction" class="com.gx.web.LoginJsonAction">
		<result name="success" type="json">
			<param name="root">user</param>
		</result>
		<result name="error" type="json">
			<param name="root">message</param>
		</result>
	</action>
</package>

3.jspページコード:

<script type="text/javascript">
   	function login(){
    
    
   		var userName=$("#userName").val();
   		var password=$("#password").val();
   		
   		$.get("${ctx}/json/loginJsonAction!login.action",{
    
    userName:userName,
   			password:password},function(data){
    
    
   			console.log(data);
   		},"json");
   	}
</script>

おすすめ

転載: blog.csdn.net/weixin_44547592/article/details/106412604