当前位置: 首页 > 知识库问答 >
问题:

Java Spring友好的Url映射问题

巫马淳
2023-03-14

我一直试图在我的第一个Java spring站点中实现友好的url映射。我一直在遵循这个教程。http://outbottle.com/spring-3-web-mvc-friendl-url-using-requestmapping-variable-uri/

/*
 * User
*/
@RequestMapping(method=RequestMethod.GET, value={"/user","/user/{id}"})
public ModelAndView profileDisplay(
        HttpServletRequest request,
        HttpServletResponse response,
        @RequestParam(value="id", required=false) String id
) throws UnknownHostException, MongoException {
    ServiceSerlvet.appendSesssion(request);
    //get search ALL users
    BasicDBObject searchQuery = new BasicDBObject();
        searchQuery.put("_id", new ObjectId(id));
    List<DBObject> searchResponse = PersonController.searchUsers(searchQuery);

    //System.out.println("response from search user method: "+searchResponse);

    return new ModelAndView("user", "people", searchResponse);
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Spring3MVC</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
              </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.html</url-pattern>


    <url-pattern>/gallery/*</url-pattern>
    <url-pattern>/galleryupload/*</url-pattern>

    <url-pattern>/delete/*</url-pattern>
    <url-pattern>/edit/*</url-pattern>

    <url-pattern>/search/*</url-pattern>
    <url-pattern>/members/*</url-pattern>
    <url-pattern>/profile/*</url-pattern>
    <url-pattern>/messages/*</url-pattern>

    <url-pattern>/index/*</url-pattern>
    <url-pattern>/login/*</url-pattern>
    <url-pattern>/logout/*</url-pattern>
    <url-pattern>/register/*</url-pattern>
    <url-pattern>/user/*</url-pattern>
    <url-pattern>/jsoninterests/*</url-pattern>
    <url-pattern>/jsonlocations/*</url-pattern>
    <url-pattern>/jsonmembers/*</url-pattern>
    <url-pattern>/jsonuniqueuser/*</url-pattern>
  </servlet-mapping>
</web-app>
@RequestMapping(value="/user/{id}", method= RequestMethod.GET)
        public ModelAndView profileDisplay(
                @PathVariable(value="id") String id,
                HttpServletRequest request,
                HttpServletResponse response
        ) throws UnknownHostException, MongoException {

    ServiceSerlvet.appendSesssion(request);
            //get search ALL users
            BasicDBObject searchQuery = new BasicDBObject();
                searchQuery.put("_id", new ObjectId(id));
            List<DBObject> searchResponse = PersonController.searchUsers(searchQuery);

            //System.out.println("response from search user method: "+searchResponse);

            return new ModelAndView("user", "people", searchResponse);
        }

共有1个答案

柴琦
2023-03-14

通常,我将每个请求映射到web.xml中的dispatcher servlet。

  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
              </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

然后在控制器中使用@RequestMapping注释定义更细粒度的映射:

    @RequestMapping("/user/{id}")
    public ModelAndView profileDisplay(
            HttpServletRequest request,
            HttpServletResponse response,
            @RequestParam(value="id", required=false) String id
    ) throws UnknownHostException, MongoException {
        ...
    }
 类似资料:
  • 问题内容: 我是Spring和Web MVC模块的新手。基本上,我有以下内容: web.xml abc-dispatcher-servlet.xml 我有一个控制器,相关的部分是: 现在每当我尝试访问 http://localhost:8080/myapp/user/welcome 它给我404。 日志说“将url’/ user / welcome’映射到处理程序’ABCController’,但

  • Nutz.Mvc 的核心任务就是将 HTTP 请求的 URL 映射到某一个入口函数,如果你看完了 Nutz.Mvc 概述 你大概应该知道,映射的配置信息是通过注解 @At 来设置的,@At 注解也非常简单,配置起来应该没有什么障碍。 但是,依然在某些时候,你会在你的应用出现 404 错误,为了能让你在编写项目是,心里非常有底,这里将详细的解释一下 JSP/Servlet 以及 Nutz.Mvc 映

  • 有没有一种方法可以像这样在liferay中创建/处理友好的URL? ... 其中John Doe是应显示其数据的客户的名称。 更详细一点: 我说的不是为了友好的url而放弃“web”或“group”,而是在第一个“/”之后有一个友好的url。 我们希望以http://server/ClientName其中ClientName解析为客户端的名称。这是一个问题,因为liferay通常希望在第一个“/”

  • 当我在Liferay中创建页面(我使用的是6.2)时,它会收到一个自动生成的友好URL,遵循几个内部规则。 例如,如果我创建一个名为的页面,它将自动接收到友好的URL。 另外,如果我创建页面aaa作为页面

  • 现在我们已经有了前面章节中解释的工作视图。 我们想通过URL访问该视图。 Django有自己的URL映射方式,它是通过编辑项目url.py文件(myproject/url.py) 。 url.py文件看起来像 - from django.conf.urls import patterns, include, url from django.contrib import admin admin.au

  • 问题内容: 在我的PHP网站上,当前用户使用电子邮件地址和密码登录。我也想添加一个用户名,该用户名g \ set将是唯一的,并且他们不能更改它。我想知道如何使该名称中没有空格并在URL中工作,以便可以使用那里的用户名链接到那里的个人资料和其他内容。如果用户名中有空格,则应在其下添加下划线jason_davis。我不确定执行此操作的最佳方法吗? 问题答案: