Struts2配置文件传递Map

今天做项目遇到要从一个action里面重定向到另一个action里面传递Map类型的值.可是我无论怎么配置都传递不过去.后来,我把信息序列化为json格式的字符串传递过去.在另一个action里面再将此json字符串序列化为一个map即可以.

代码如下:

首先:我写了一个工具方法,此方法接收一个json对象和一个key(错误信息的key),返回序列化后的字符串.

 

	/**
	 * 错误信息转换的方法.用于传递错误信息到初始化注册页面
	 * @description	
	 * @author  吕兵阳
	 * @param obj JSON对象
	 * @param key 错误信息的key
	 * @return Json格式的字符串
	 */
	public String convertJson(JSONObject obj,String key){
		obj.put(key, getFieldErrors().get(key).get(0));
		return obj.toJSONString();
	}

这个是struts2的验证方法:

 

if(user.getName()==null||"".equals(user.getName().trim())){
			addFieldError("name", "用户名不能为空!");
			errorMsg=convertJson(obj, "name");
			return;
}

这个是Struts2的配置文件

 

<!-- 会员信息 -->
	<action name="*TUser" class="tuserAction" method="{1}">
	<result name="addUser_success">page/success.jsp</result>
	<result name="doAdd_error">page/saleRegister.jsp</result>
	<result name="input" type="redirectAction">
		<param name="actionName">initInit.action</param>
		<param name="errorMsg">${errorMsg}</param>
	</result>
	</action>


这个就是要接收错误信息的那个action

 

	/**
	 * 初始化数据,加载企业类型和省份下拉框的值
	 * @description	
	 * @author  吕兵阳
	 * @return
	 * @throws Exception
	 */
	public String init() throws Exception {
		logger.debug("----------------init方法begin---------------");
		facttypeList = tfacttypeService.findAllType();
		logger.debug("获取到的企业类型信息:"+JSONObject.toJSONString(facttypeList));
		errorMsg = new String(errorMsg.getBytes("ISO8859-1"),"UTF-8");
		JSONObject obj=JSONObject.parseObject(errorMsg);
		String errorKey = obj.keySet().iterator().next();
		addFieldError(errorKey, obj.getString(errorKey));
		logger.debug("错误传递ok!");
		shengList = tshengService.findAllSheng();
		logger.debug("获取的省份数量:"+shengList.size());
		logger.debug("---------------init方法end----------------");
		return SUCCESS;
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值