struts2 namespace算法实现

回答了我在迷你博客中的提的问题

这段代码中:config.getPackageConfigs方法的到配置的所有package bean信息,prefix是从servletPath中截取的index从0..lastIndex("/")之间的字符串。

(ns!=null&& prefix.startsWith(ns)):表明package中的namespace不为null且ns匹配namespace的开始部分
prefix.length()==ns.length() :表明ns.equals(prerix)
prefix.charAt(ns.length())=='/':表明prefixde在index=ns.length()地方的字符匹配为'/'

  1. if(ns.length()>namespace.length()) namespace=ns;表明取最长匹配(但最长也不会超过prefix的长度)
  2. for (Iterator i = config.getPackageConfigs().values().iterator(); i.hasNext();) {
  3.                 String ns = ((PackageConfig) i.next()).getNamespace();
  4.                 if (ns != null && prefix.startsWith(ns)
  5.                         && (prefix.length() == ns.length() || prefix.charAt(ns.length()) == '/')) {
  6.                     if (ns.length() > namespace.length()) {
  7.                         namespace = ns;
  8.                     }
  9.                 }
  10.             }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值