JSP MVC:如何使用具有多个视图和动作的控制器 [重复]
Posted
技术标签:
【中文标题】JSP MVC:如何使用具有多个视图和动作的控制器 [重复]【英文标题】:JSP MVC : How to use one Controller with multiple Views and Actions [duplicate] 【发布时间】:2016-09-11 14:22:08 【问题描述】:我是 JSP 和 Servlet 的新手,我想使用 MVC 模式开发一个 Web 应用程序 我想知道是否有任何方法可以使用可以处理许多操作和视图的 servlet 创建控制器(如 ASP.NET MVC 中的那个)
例如,我有一个名为“AccountController”的控制器 我想要的是: 当用户请求 url /Account/Login AccountController 处理请求(获取或发布)并显示 LoginView.jsp
同样的 URL /Account/Register AccountController 处理请求(获取或发布)并显示 RegisterView.jsp
【问题讨论】:
【参考方案1】:我建议为此使用 Spring MVC http://docs.spring.io/autorepo/docs/spring/3.2.x/spring-framework-reference/html/mvc.html
你会有这样的东西:
@Controller
@RequestMapping("/Account")
public class AccountController
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login()
...
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register()
...
@RequestMapping(value = "/welcome", method = RequestMethod.GET)
public String welcome()
...
【讨论】:
【参考方案2】:非常感谢楼主
但我没有使用 Spring 框架:)
这是我的代码:
1 - AccountControler.java
public class AccountController extends HttpServlet
// GET
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
String action = Helper.getAction(request);
switch (action)
case "Login":
// ToDo
View.go(request, response, "../LoginView.jsp");
break;
case "Register":
// ToDo
View.go(request, response, "../RegisterView.jsp");
break;
default:
View.go(request, response, "../HomeView.jsp");
break;
这是 getAction() 方法
public static String getAction(HttpServletRequest request)
String act[] = request.getRequestURL().toString().split("/");
return act[act.length-1];
【讨论】:
以上是关于JSP MVC:如何使用具有多个视图和动作的控制器 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jQuery 调用 MVC ChildActionOnly 控制器动作