【问题标题】:how to set href to outter website programatically?如何以编程方式将href设置为其他网站?
【发布时间】:2015-09-07 12:58:06
【问题描述】:

我正在以编程方式生成 html 页面。

我在这个 src 上有一个 href

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

但是当我像这样生成 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;
}

结果是指向:

"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();

【问题讨论】:

  • 这是因为你在 http: 后面只有一个斜杠
  • 你的https:/ 错了,应该是https://,这解释了为什么浏览器回退到一个相对的url而不是一个完整的,检查你的数据源
  • 如何更改我的 uri builder?
  • 如果您发布您的 editorUrlGenerator.generateUrl() 方法,我们可以帮助您找到那个单斜线。
  • 任何答案都能解决您的问题吗?如果是,请选择正确的答案。

标签: html css href


【解决方案1】:

您的网址中设置的协议是https:/,而不是“https://”。这会导致应用程序认为它是一个相对 URL。修复这个问题,以后不要在域名前面加上http://localhost:63342

【讨论】:

    【解决方案2】:

    解决方案是更改我的 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();
    }
    

    【讨论】:

    • 请将此编辑到您的问题中。这将被标记为“评论问题而不是答案”。
    猜你喜欢
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2018-03-19
    相关资源
    最近更新 更多