小编JYC*_*JYC的帖子

用于在URI模板(RFC 6570)中提取值的独立Java实现?

是否有Java独立实现来提取URI中模板(RFC 6570)定义的参数值?

我发现的最佳实现是ruby实现(https://github.com/sporkmonger/addressable)

通过http://code.google.com/p/uri-templates/wiki/Implementations我找到了一个Java实现:Handy-URI-Templates

它支持使用参数值解析URI模板到最终URI.不幸的是,它无法做到相反:根据URI-Template提取URI中的参数值.

JAX-RS(或Restlet)的实现在内部具有此功能.但是似乎没有一个孤立的这个功能模块可以独立使用.

有没有人有另一个想法?


这里有一个使用spring-Web的例子:

import org.springframework.web.util.UriTemplate;

public class UriParserSpringImpl implements UriParser {

  private final UriTemplate uriTemplate;
  private final String uriTemplateStr;

  public UriParserSpringImpl(final String template) {
    this.uriTemplateStr = template;
    this.uriTemplate = new UriTemplate(template);
  }

  @Override
  public Map<String, String> parse(final String uri) {
    final boolean match = this.uriTemplate.matches(uri);
    if (!match) {
      return null;
    }
    return uriUtils.decodeParams(this.uriTemplate.match(uri));
  }

  @Override
  public Set<String> getVariables() {
    return Collections.unmodifiableSet(new LinkedHashSet<String>(this.uriTemplate.getVariableNames()));
  }
}
Run Code Online (Sandbox Code Playgroud)

Jersey的另一个(JAX-RS实现):

import com.sun.jersey.api.uri.UriTemplate;
public class UriParserJerseyImpl implements …
Run Code Online (Sandbox Code Playgroud)

java parsing jax-rs restlet uritemplate

10
推荐指数
1
解决办法
2331
查看次数

标签 统计

java ×1

jax-rs ×1

parsing ×1

restlet ×1

uritemplate ×1