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:如何使用具有多个视图和动作的控制器 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从控制器动态渲染动作 - MVC

如何使用 jQuery 调用 MVC ChildActionOnly 控制器动作

如何确定视图中动作的上下文(asp.net mvc)

对具有多个模型的 JS 应用程序使用 MVC 模式

通过组合动作链接和 ASP.Net MVC 5 中的输入将用户键入的输入从视图传递到动作控制器?

Struts2 Action/动作