首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的html页面说我在我的页面前面使用的对象不存在。

我的html页面说我在我的页面前面使用的对象不存在。
EN

Stack Overflow用户
提问于 2022-06-26 10:27:20
回答 1查看 45关注 0票数 0

我试图把用户名作为参数放在我的链接中。通过jquery执行此操作唯一的问题是我得到了这个错误,请注意对象调用在span标记上是出于某种原因而工作的。我一直在看教程,但是当我试图通过$(#emailTarget).attr(“id”)获得span标记值时没有效果;并将上述id放到span标记上--它给出了未定义的值,而不是用户名。

错误堆栈

代码语言:javascript
运行
复制
org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleText(InlinedOutputExpressionMarkupHandler.java:80)
    at org.attoparser.HtmlMarkupHandler.handleText(HtmlMarkupHandler.java:208)
    at org.attoparser.AbstractChainedMarkupHandler.handleText(AbstractChainedMarkupHandler.java:203)
    at org.attoparser.MarkupParser.parseBuffer(MarkupParser.java:557)
    at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301)
    ... 98 more
Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "principal.username" (template: "index" - line 49, col 25)
    at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:292)
    at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression(VariableExpression.java:166)
    at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:66)
    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109)
    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138)
    at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:144)
    at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74)
    at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95)
    at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633)
    at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314)
    at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205)
    at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136)
    at org.thymeleaf.engine.TemplateManager.process(TemplateManager.java:519)
    at org.thymeleaf.util.LazyProcessingCharSequence.writeUnresolved(LazyProcessingCharSequence.java:85)
    at org.thymeleaf.util.AbstractLazyCharSequence.write(AbstractLazyCharSequence.java:103)
    at org.thymeleaf.engine.AbstractTextualTemplateEvent.writeContent(AbstractTextualTemplateEvent.java:224)
    at org.thymeleaf.engine.Text.write(Text.java:78)
    at org.thymeleaf.engine.OutputTemplateHandler.handleText(OutputTemplateHandler.java:71)
    ... 107 more
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'username' cannot be found on null
    at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:213)
    at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:104)
    at org.springframework.expression.spel.ast.PropertyOrFieldReference.access$000(PropertyOrFieldReference.java:51)

我的主页

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
    <head>
        <meta charset="ISO-8859-1">
        <title>Registration and Login App</title>

        <link rel="stylesheet"
              href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
              integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
              crossorigin="anonymous">

    </head>
    <body>
        <!-- create navigation bar ( header) -->
        <nav class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle collapsed"
                            data-toggle="collapse" data-target="#navbar" aria-expanded="false"
                            aria-controls="navbar">
                        <span class="sr-only">Toggle navigation</span> <span
                            class="icon-bar"></span> <span class="icon-bar"></span> <span
                            class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand" href="#" th:href="@{/}">Registration and
                        Login Module</a>
                </div>
                <div id="navbar" class="collapse navbar-collapse">
                    <ul class="nav navbar-nav">
                        <li sec:authorize="isAuthenticated()"><a th:href="@{/logout}">Logout</a></li>
                    </ul>
                </div>
            </div>
        </nav>

        <br>
        <br>

        <div class="container">
            <h1>Registration and Login with Spring Boot, Spring Security,
                Thymeleaf, Hibernate and MySQL</h1>
            Welcome <span sec:authentication="principal.username"> User</span>
        </div>
        <a th:href="login" id="changeMe" class="btn btn-danger">Delete</a>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

        <script  type="text/javascript" th:inline="javascript">
            let email=[[${principal.username}]];
            $('#changeMe').prop("href", "/delete?email="+email)
        </script>
    </body>
</html>

我的存储库网址:https://github.com/jonathanIckovich/realtyKing.git

EN

回答 1

Stack Overflow用户

发布于 2022-06-26 10:37:05

如果要在链接中添加参数,请使用以下命令:<a th:href="@{/delete(email=${#authentication.principal.username})}">...</a>。这将导致像这样的uri:/delete?email=test@example.com。如果要替换路径变量- @{/delete/{email}(email=${#authentication.principal.username})}

然而,您所面临的问题似乎更像是一个与principal连接的内部问题,即null (因此出现了错误消息)--这可能是因为您已经注销了。您可能应该检查一下,在您试图构建的链接周围是否有一个原则(例如#authentication.isAuthenticated())。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72760752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档