Как поставить внутри значения = "" на входе? - PullRequest
0 голосов
/ 19 января 2020

Кто-нибудь знает, как я могу поместить эту строку

<security:authentication property="principal.username"/>

внутри value=""

<form:input path="contactName" cssClass="form-control"
                        placeholder="Enter your Contact Name please." value=""/>

Если я сохраню это, как в коде, показанном ниже, имя пользователя отображается под полем ввода, а не внутри (obv).

 <form:input path="contactName" cssClass="form-control"
                        placeholder="Enter your Contact Name please." value=""/>
            <security:authentication property="principal.username"/>

Большое спасибо за любую помощь!

С уважением, Нико

Ответы [ 2 ]

1 голос
/ 20 января 2020

Если вы используете Standard Spring- MVC, то вы можете отправить имя пользователя от самого контроллера.

В файле контроллера используйте принципал в качестве параметра. Используйте getName () класса Principal для установки имени пользователя в модели и передачи его в качестве оператора возврата.

    public ModelAndView display(Principal principal){
        ModelAndView mav = new ModelAndView();
        mav.addObject("uname", principal.getName());
        return mav;
    }

В файле JSP используйте value="${uname}":

    <form:input path="contactName" cssClass="form-control"
                        placeholder="Enter your Contact Name please." value="${uname}"/>
1 голос
/ 19 января 2020

Используете ли вы Thymeleaf?

Если да, вы можете сделать это следующим образом.

Добавить pom.xml Зависимость:

    <!-- https://mvnrepository.com/artifact/org.thymeleaf.extras/thymeleaf-extras-springsecurity5 -->
    <dependency>
        <groupId>org.thymeleaf.extras</groupId>
        <artifactId>thymeleaf-extras-springsecurity5</artifactId>
        <version>3.0.4.RELEASE</version>
    </dependency>

Тогда:

<!-->it is necessary<-->
<html xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/extras/spring-security">

<input placeholder="XXX" th:value="${#authentication.getName()}" />

Можно получить имя пользователя, но оно вернет anonymousUser, даже если вы не вошли в систему. Не беспокойтесь, это небольшая проблема, вы можете использовать суждение тимелифа.

Более подробную документацию можно найти по адресу: https://www.thymeleaf.org/doc/articles/springsecurity.html

Если это не решит вашу проблему, я буду следить.

...