하시엔다
30
2022-01-04 21:08:15 작성 2022-01-04 21:10:27 수정됨
1
122

안녕하세요 Spring boot security thymeleaf 에 대해 질문 드리겠습니다.


안녕하세요

새해 복많이 받으세요~~~


이번 스프링 부트에 타임리프 프로젝트를 처음해보는 초보 개발자 입니다.


로그인 까지 완료 했는데 

템플릿 헤더에 OO 님 안녕하세요 뿌리는 부분을 하고 있습니다.


세션 값을 가져오려면

<span th:text="${#authentication.principal.mngrNm}">   <-- 유저아이디

<span th:text="${#authentication.principal.permCdTreeList}">  <--권한이름


이렇게 해서 잘 가져오고 있습니다.

<sec:  뭐 이런식으로도 가져오는 걸로 알고있는데 써보니 잘되긴 하는데 불편해서 위와 같이 가져오고

있습니다.


근데 문제는.....

변환 함수를 썼는데 ,(쉼표) 를 / 로 바꾸는

<span th:text="${#strings.replace(authentication.principal.mngrNm, ',', '/')}"></span>

이건 원래 안된는 건가요? ㅎㅎㅎ 

replace 뿐만아니라 다른 함수도 안되는거 같습니다.

 에러내용은


Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "#strings.replace(authentication.principal.mngrNm, ',', '/')" (template: "fragments/header" - line 25, col 34)

at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393)

at org.attoparser.MarkupParser.parse(MarkupParser.java:257)

at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230)

... 92 common frames omitted

Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "#strings.replace(authentication.principal.mngrNm, ',', '/')" (template: "fragments/header" - line 25, col 34)

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.Model.process(Model.java:282)

at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1587)

at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205)

at org.thymeleaf.engine.Model.process(Model.java:282)

at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1587)

at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205)

at org.thymeleaf.engine.Model.process(Model.java:282)

at org.thymeleaf.engine.Model.process(Model.java:290)

at org.thymeleaf.engine.GatheringModelProcessable.process(GatheringModelProcessable.java:78)

at org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement(ProcessorTemplateHandler.java:1640)

at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleCloseElementEnd(TemplateHandlerAdapterMarkupHandler.java:388)

at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleCloseElementEnd(InlinedOutputExpressionMarkupHandler.java:322)

at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleCloseElementEnd(OutputExpressionInlinePreProcessorHandler.java:220)

at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleCloseElementEnd(InlinedOutputExpressionMarkupHandler.java:164)

at org.attoparser.HtmlElement.handleCloseElementEnd(HtmlElement.java:169)

at org.attoparser.HtmlMarkupHandler.handleCloseElementEnd(HtmlMarkupHandler.java:412)

at org.attoparser.MarkupEventProcessorHandler.handleCloseElementEnd(MarkupEventProcessorHandler.java:473)

at org.attoparser.ParsingElementMarkupUtil.parseCloseElement(ParsingElementMarkupUtil.java:201)

at org.attoparser.MarkupParser.parseBuffer(MarkupParser.java:725)

at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301)

... 94 common frames omitted


뭘 해도 안됩니다 ㅠㅠ


혹시 해결하신분 답변좀 부탁드리겠습니다.


감사합니다.







0
  • 답변 1

  • siriC
    45
    2022-01-07 18:33:39

    <span th:text="${#strings.replace(#authentication.principal.mngrNm, ',', '/')}"></span>

    이렇게 수정해보시지요.

  • 로그인을 하시면 답변을 등록할 수 있습니다.