Struts2配置文件传递Map

来源:互联网 发布:千牛mac beta 编辑:程序博客网 时间:2024/06/16 04:46

今天做项目遇到要从一个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
原创粉丝点击