2021-07-13

  XML建模  今天学习了XML的建模,怎么说呢,代码繁琐  前奏像定义一个实体类entity,后面就要考虑写方法,方法中带参  心思缜密,清楚。  简单介绍:1 导包从内到外定义xml文件里面的属性(与entity一样),属性也要定义(String name)放值的方法:public void put(ForWardModel forwardModel) {                        //根据传递过来的Forward的name来判断该值是否存在                if(this.forwardModels.containsKey(forwardModel.getName())) {//当前forward传递过来的值如果包含name                        throw new RuntimeException("该键位["+forwardModel.getName()+"]已经存在");//抛出运行异常                }                //否则说明这个name是唯一的,可以放入map中                this.forwardModels.put(forwardModel.getName(), forwardModel);        }取值的方法:    //根据ForWardModel 里面的name来取        public ForWardModel get(String name) {                if(null==this.forwardModels.get(name)) {                        throw new RuntimeException("该键位["+name+"]不存在");                }                return this.forwardModels.get(name);        }注:最外面的一级,不能让用户new出来,因此进行封装private  ConfigModel{}//封装xml文件路径:让用户带路径(写方法,带参)             没有路径,定义路径 private static final String PATH="/config.xml"帮助用户获取最外面一层的方法:先创建    	  ConfigModel com=new ConfigModel();解析并对路径进行判断InputStream is=null;        	  //对解析的文件的路径进行判断        	  if(null==path) {            	  is=ConfigModel.class.getResourceAsStream(PATH);        	  }else {            	  is=ConfigModel.class.getResourceAsStream(path);        	  }        	  SAXReader sax=new SAXReader();        	  Document document = sax.read(is);后赋值      	  List<Element> actionElements = document.selectNodes("/config/action");//解析的路径循环遍历for (Element actionElement : actionElements) {                        ActionModel actionModel=new ActionModel();            actionModel.setPath(actionElement.attributeValue("path"));            actionModel.setType(actionElement.attributeValue("type"));            List forwardElements = actionElement.selectNodes("forward");            //循环遍历所有的Action找到对应的fowWARD            for (Element forwardElement : forwardElements) {                            ForWardModel forwardModel=new ForWardModel();                forwardModel.setName(forwardElement.attributeValue("name"));                forwardModel.setPath(forwardElement.attributeValue("path"));                forwardModel.setRedirect(forwardElement.attributeValue("redirect"));                //循环将forward放入到对应的action中                actionModel.put(forwardModel);            }           com.put(actionModel);        }在所有循环的外面返回该方法类型    return com;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值