我正在学习Java 8中的Lambda表达式和方法引用,并且看到我们可以通过使用'super'来引用方法的超类版本,如下所示:
超级::名
但是,当我这样做时,它不起作用.以下是示例代码:
interface MyInterface {
int someFunc(int x);
}
class A {
static int Func(int y) {
// return (int) (Math.random() * y);
return y;
}
}
class B extends A {
static int Func(int y) {
// return (int) (Math.random() * y);
return y + 1;
}
}
public class Test {
public static void main(String[] args) {
System.out.print("Enter a number: ");
java.util.Scanner scanner = new java.util.Scanner(System.in);
int result = funcOp(B::Func, scanner.nextInt()); // <-This works.
//int result …Run Code Online (Sandbox Code Playgroud) 我正在开发一个基于 Spring boot 的 Web 应用程序,主页包含一个带有登录和注册链接的 boostrap 导航栏。
用户登录后(通过单击主页中的登录链接),他们将再次重定向到主页(除非他们在 Spring Security 启动 A&A 之前访问任何其他链接)。在重定向时,我想隐藏导航栏中的登录和注册链接,并在其位置显示注销链接。因为我想在应用程序的所有页面中插入导航栏。
我想知道当要求重定向到同一页面时执行此操作的最佳/标准方法是什么。
我能想到的一种解决方案是从 spring security 检查并获取 user-principal 对象,将其传递给 thymeleaf 模板,并检查 thymeleaf 模板的请求属性中是否存在 userprincipal 对象,这意味着用户已登录然后我可以隐藏(不渲染)登录和注册链接以及显示(渲染)注销链接。如果没有,则显示登录和注册链接并隐藏注销链接。我想知道,这是正确的方法吗?这对我来说就像是一种黑客攻击,因此想知道是否有任何标准方法可以做到这一点。
spring-mvc spring-security thymeleaf spring-boot bootstrap-4