如何在Struts2中返回json

在Struts2返回json,需要在Action中定义该变量还有写一个get方法。
1.以下是Action中的代码

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格式,有以下两种方式
(1)第一种,在package中继承json-default,并在result中指定返回类型为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) 第二种,在package中定义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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值