2015-06-22 97 views
0

我以编程方式生成html页面。如何以编程方式将href设置为outter网站?

我有这个SRC

"https:/www.w.com/editor/?lon=-72.382769&lat=41.324657" 
然而

一个href当我生成这样的HTML:

private Span getEditorSpan(CompleteRoutingResponseShort response) { 
    Span span4 = new Span(); 
    for (int i = 0; i < response.alternatives.size(); i++) { 
     String editorUrl = editorUrlGenerator 
       .generateUrl(response.alternatives.get(i).response.results); 

     A a3 = new A(); 
     a3.appendText("alt " + i); 
     a3.setTitle(response.alternatives.get(i).alternative_regression_id); 
     a3.setHref(editorUrl); 

     span4.appendChild(ImmutableList.of(a3, new Span().appendText("&nbsp&nbsp&nbsp"))); 
    } 
    return span4; 
} 

的结果实际上就是一个HREF到:

"http://localhost:63342/https:/www.w.com/editor/?lon=-72.382769&lat=41.324657" 

这是结果html:

<span><a title="358_0" href="https:/www.w.com/editor/?lon=-71.18612999999999&amp;lat=42.21286&amp;zoom=4&amp;segments=63385498,76487105,22543109,22503638,22527613,76599462,76599461,76599460">alt 0</a><span>&nbsp;&nbsp;&nbsp;</span></span> 

如何使url直接在我的localhost域之外?

这是我的网址构建器:

UriBuilder builder = UriBuilder 
      .fromPath(Constants.EDITOR_BASE_URL) 
      .scheme("https"); 

    builder.queryParam("lon", firstPath.x) 
      .queryParam("lat", firstPath.y) 
      .queryParam("zoom", 4) 
      .queryParam("segments", segmentsInUrl); 


    return builder.build().toString(); 
+0

那是因为你只有一个在http: –

+1

之后的单斜杠你的'https:/'是错的,它应该是'https://', ain为什么浏览器在相对url而不是完整的浏览器上回退,请检查您的数据源 –

+0

如何提醒我的uri构建器? –

回答

2

的协议集在您的网址是https:/,而不是 'https://开头'。这会导致应用程序认为它是一个相对URL。解决这个问题,之后不应该预先输入域名http://localhost:63342

0

解决的办法是改变我UriBuilder:

我从这里改变了我的UriBuilder

UriBuilder builder = UriBuilder 
      .fromPath("www.w.com/editor/";) 
      .scheme("https"); 

    builder.queryParam("lon", firstPath.x) 
      .queryParam("lat", firstPath.y) 
      .queryParam("zoom", 4) 
      .queryParam("segments", segmentsInUrl); 


return builder.build().toString(); 

这样:

Path firstPath = results.get(0).path; 

    UriBuilder builder = UriBuilder 
      .fromUri("https://www.w.com/editor/") 
      .queryParam("lon", firstPath.x) 
      .queryParam("lat", firstPath.y) 
      .queryParam("zoom", 4) 
      .queryParam("segments", segmentsInUrl); 


    return builder.build().toString(); 
} 
+0

请把它编辑成你的问题。这将被标记为“对问题的评论而不是答案”。 – Dropout

相关问题