所以假设我有 2 个 jsp 文件:登录.jsp和菜单.jsp
我在控制器类中也有两个方法:
@RequestMapping("/login")
public void login() {
return "login";
}
@RequestMapping("/menu")
public void menu() {
List<User> allUsers = userJpaRepository.findAll();
return new ModelAndView("allUsers", "users", allUsers);
}
登录中.jsp
<%@page import="com.markovski.database.DataBase"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<form method="get" action="menu.jsp">
<%
String accname = request.getParameter("uname");
String password = request.getParameter("pass");
if(DataBase.checkForUserCreditinals(accname, password)){
session.setAttribute("userId", 2);
response.sendRedirect("menu.jsp");
} else {
//out.println("Error");
}
%>
</form>
那我想要什么?当我登录时,我想被重定向到菜单页面,但它不会调用menu((,这会将所有用户传递到我的菜单.jsp。所以它只是打开一个空的/menu 页面。如何重定向到菜单.jsp并调用控制器方法,这将为我提供要显示的数据?
当你在 Spring 中编码时,我认为我们可以坚持它,而不是混合 jsp 和 Spring 风格。你为什么不为菜单 url 和返回菜单编写一个映射.jsp从它。你也可以把你的数据库代码也保留在那里(虽然不是一个好的做法(。您可能还需要处理登录提交。