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;
    }


转载于:https://my.oschina.net/kkrgwbj/blog/212253

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值