2011-06-14 63 views
0

大家早上好,我们在J2EE中是否有类似RegisterRoutes的功能

我有一个关于J2EE框架的问题。

自ASP.net 3.5 mvc添加新功能“路线”我们在j2ee中有类似的功能吗?

这里是关于ASP.NET3.5此功能的一些文字

路由是在.NET 3.5 SP1中的新功能,以及ASP.NET MVC使用此功能给控制器类响应请求的能力。 ASP.NET MVC使用类似REST的URL(Representational State Transfer),这些URL比常规的ASP.NET Web应用程序URL更清晰。以下是此类URL的例子:

/products/show/881 
/customers/list 
/login/register 

正如你所看到的,REST样的URL往往是干净,简单,不直接暴露的.aspx服务器上的文件。虽然您可以直接在ASP.NET MVC应用程序中寻址.aspx页面,但这不是主要想法。

通过开发人员定义的路由,ASP.NET MVC应用程序可以将请求定向到控制器。为整个ASP.NET应用程序定义一次路由,因此Global.asax文件是定义这些路径的合理位置。实际上,如果您查看ASP.NET MVC应用程序中的默认Global.asax.cs文件,您将看到一个名为RegisterRoutes的方法。这个方法是从Application_Start方法中调用,并且实现这样的:控制器,动作,最后由斜线分开的ID:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.MapRoute(
     "Default", 
     "{controller}/{action}/{id}", 
     new { controller = "Home", 
     action = "Index", 
     id = "" } 
    ); 
} 

默认情况下,一个称为“默认”路由与三个部分所定义。当请求到达MVC应用程序时,根据此定义来解析URL。例如,给出“/ products/show/881”的请求,这将被解析,以便“controller”参数具有“products”的值,“action”参数将是“show”,最后是“id”将是“881”。

回答

2

如果你使用Spring,你可以用它@RequestMapping注解来达到类似的东西,所以你可以有像

@Controller 
@RequestMapping("/products") 
public class ProductController { 
    @RequestMapping("/show/{id}) 
    public String show(@PathVariable Integer id) { 

    ....... 

    } 

} 

如果你想确保的JSP不能直接调用,你把它们放在WEB-INF里面

相关问题