如何将<security:身份验证属性= "principal.username" />放在输入中的值= " "?



>有人知道我怎么能把这条线放进去

<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"/>

非常感谢任何帮助!

关于尼科

你使用百里香叶吗?

如果是,您可以这样做。

添加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

如果这不能解决您的问题,我会跟进。

如果您使用的是标准 Spring-MVC,那么您可以从控制器本身发送用户名。

在控制器文件中,使用主体作为参数。使用 Principal 类的 getName(( 在模型中设置用户名并将其作为 return 语句传递。

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}"/>

最新更新