当前位置: 首页 > 知识库问答 >
问题:

Thymeleaf URL在Spring Boot App中将URL转发到外部URL的问题

万俟飞语
2023-03-14

我创建了一个Spring Boot应用程序,在这个应用程序中,我从外部API获取数据,将它们存储在数据库中,然后使用Thymeleaf将它们以HTML格式显示在前端。除了一件事,一切都很好。

db中的一列名为“Headline”,映射为字符串变量。我在我的Spring Boot应用程序中使用这个变量作为超链接,与存储在同一数据库中的URL相结合,以重定向到它们的源。下面我展示了我的前端代码。

前端页面

<!DOCTYPE HTML>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:c="http://www.w3.org/1999/XSL/Transform"
      xmlns:https="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <title>Spring Boot Thymeleaf Hello World Example</title>

    <link rel="stylesheet" th:href="@{/webjars/bootstrap/css/bootstrap.min.css}"/>
    <link rel="stylesheet" th:href="@{/styles/db.css}"/>
    <script type="text/javascript" th:src="@{/webjars/bootstrap/js/bootstrap.min.js}"></script>


</head>

<body>

<ul>
    <li><a href="http://localhost:8080/">Home</a></li>
    <li><a href="https://github.com/Andreas-Kreouzos" target="_blank">Github</a></li>
    <li><a th:href="@{https://github.com/Andreas-Kreouzos}" target="_blank">Github</a></li>
</ul>

<main role="main" class="container">

    <div class="starter-template">
        <h1>Cryptocurrency News</h1>
    </div>

</main>
    <!--Display DB contents on HTML and Thymeleaf-->
    <div class="container text-center" id="tasksDiv">
        <hr>
        <div class="table-responsive">
            <table class="table table-striped table-bordered">
                <thead>
                <tr>
                    <th>News Provider Name</th>
                    <th>News Link</th>
                    <th>Related Image</th>
                </tr>
                </thead>
                <tbody>
                    <tr th:each="rate: ${rates}">
                        <td th:text="${rate.news_provider_name}"> </td>
                        <td>
                            <a
                                    th:href="@{${rate.news_link}}"
                                    target="_blank"
                                    th:text="${rate.HEADLINE}">
                            </a>
                        </td>
                        <td> <img th:src="${rate.related_image}" alt="error displaying image"> </td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>


</body>
</html>

当我运行我的应用程序时,一切都显示得很好,但只要我按下文本超链接,我就会在主页上被重定向,而不是我存储在数据库中的给定URL。下面,我向你们展示了我的打印屏幕,当我在浏览器中将光标悬停在URL上方时,你们肯定可以看到URL已经被正确提取和分配,就在我按下URL之前。但一旦他们被追问,我就会在这里重新定位,而不是在这里。

你知道我做错了什么吗?

更新

在上面的代码中,我将th:href=“${rate.news\u link}更改为th:href=“@{${rate.news\u link},但仍然没有任何效果。例如,如果我的初始URL是

https://www.investing.com/news/cryptocurrency-news/tether-liquidates-celsius-position-with-no-losses-to-stablecoin-issuer-2845626

被截断为<代码>https://www.investing.com/

共有1个答案

越学文
2023-03-14

我认为当你使用锚定标签时,你应该给/给URL,你可以这样尝试

th:href=“@{$${rate.news\u link}}”

 类似资料:
  • 上面的代码摘自这个答案。

  • 我试图使用axios将一个外部url加载到使用vuejs的div中,我得到了 CORS策略阻止了从origin访问在处的XMLHttpRequest:请求的资源上没有'Access-Control-Allow-Origin'标头。 我错过了什么? 堆栈跟踪: CORS策略阻止从来源“http://localhost:8080”访问位于“https://pay.stripe.com/receipts

  • 我有两个Rest终点。 -身份提供程序,在用户通过用户名/密码的身份验证后,发送JWT令牌作为响应。 -接受上述JWT令牌作为头,对其进行验证,如果令牌有效,则发送用户JSON作为响应。 我已经使用Angular2创建了我的UI null

  • 问题内容: 就像是: 问题答案: 这将创建一个包含链接的“另请参阅”标题,即: 将呈现为: 另请参见: http : //google.com 而这: 将创建一个嵌入式链接: 见http://google.com

  • 我有一个简单的应用程序,将加载托管的网页,我想显示在单独的选项卡面板。最干净的方法是什么?选项卡可以在用户点击每个选项卡时加载,或者在应用程序启动时一次加载所有选项卡。Sencha Touch没有办法简单地使html: value成为一个URL。我可以为每个选项卡添加一些页面加载事件吗? [更新] 我添加了使用本地html文件进行测试的初始化:方法中的Ajax调用的建议。但是,所有选项卡都显示要完

  • 目前,我正在通过外部URL检索数据,该URL使用PHP脚本并返回JSON值。工作很好。 但如何发送用于查询的字符串,以便在PHP脚本中执行以下操作: 注意:我不想使用凌空抽射。 我的AsyncTask扩展类,它当前不向URL发送任何值。