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 |
这样请求地址就实现动态修改了。