SpringMVC动态配置登录、请求地址


    SpringMVC动态配置登录、请求地址,可以将URI写到配置文件,项目启动的时候自动匹配加载。


如在application.properties配置登录路径

login.url=userLogin111

请求路径

@RequestMapping(value="${login.url:login}" , method= {RequestMethod.GET})

@Controller
public class LoginController {

	private static Log log = LogFactory.getLog(LoginController.class) ;
	
	// 登录路径,动态配置 , 没有配置login.url ,默认值就是login
	@Value("${login.url:login}")
	private String loginUrl ;
	
	@GreenPath
	@RequestMapping(value="${login.url:login}" , method= {RequestMethod.GET})
	public String loginPage(HttpSession session) {
		if(StringUtils.isBlank(loginUrl)) {
			loginUrl = "login" ;
		}
		// 将登录的请求路径存到session,方便页面和拦截器等地方调用
		session.setAttribute("loginUrl", loginUrl);
		
		// 跳转到登录页面
		return "loginPage" ;
	}
	
	// 登录操作
	@GreenPath
	@ResponseBody
	@RequestMapping(value="${login.url:login}" , method= {RequestMethod.POST})
	public AjaxResult login(HttpSession session ,String username ,String password ) {
		
		try {
			// 密码校验等操作
			session.setAttribute("user", user);
			
			return AjaxResult.ok() ;
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return AjaxResult.error() ;
	}
	
}

页面调用

<form class="layui-form" action="<%=path%>/${sessionScope.loginUrl}" method="post" id="formLogin">


拦截器等Java类调用

String loginUrl = (String)session.getAttribute("loginUrl");
request.getRequestDispatcher("/"+loginUrl).forward(request, response);


可以在启动日志中看到

-Mapped "{[/userLogin111],methods=[GET]}" onto public java.lang.String com.xxx

-Mapped "{[/userLogin111],methods=[POST]}" onto public com.xxx

这样请求地址就实现动态修改了。



动态配置请求地址

2021.03.31 00:50

https://www.meihaocloud.com.com/1064.html , 欢迎转载,请在文章页标出原文连接 !


Copyright © 2020 千夕网 联系站长

粤公网安备 44030302001408号 粤ICP备19099833号-1