问答详情
源自:4-1 基于bootstrap开发页面结构

为什么输入http://localhost:8080/seckill/list打不开列表界面

如果我把地址修改为http://localhost:8080/seckill/seckill/list即写两个seckill就可以打开详细界面了。其实第一个seckill应该是工程名,而第二个seckill才是RequestMapping定义的值,所以按照道理应该是写两个seckill才能打开界面,为什么老师的演示只写一个seckill就打开了界面呢?

提问者:taoy 2016-08-09 19:55

个回答

  • 三十文
    2016-10-18 23:42:40
    已采纳

    这个问题还是比较容易解决的,重点是在tomcat的配置文件server.xml上

    新建一个tomcat,配置文件如下:

    <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt" />
    </Host>

    部署项目,如SecKill这个项目,此时配置文件更改成下面这样的情况:

    <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/>
        <Context docBase="SecKill" path="/SecKill" reloadable="true" source="org.eclipse.jst.jee.server:SecKill"/>
    </Host>

    好吧,这个时候就很容看出来了,将我们的这个docBase的"SecKill"这个项目,对应的映射成了path="/SecKill",如果想要项目开发时候不使用项目名,直接将path="",置为空,重启项目,输入路径,OK,完成.

    有不清楚的,欢迎互相讨论.


  • Bills_Alan
    2018-02-10 17:21:34

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:p="http://www.springframework.org/schema/p"  
        xmlns:tx="http://www.springframework.org/schema/tx"  
        xmlns:mvc="http://www.springframework.org/schema/mvc"  
        xmlns:context="http://www.springframework.org/schema/context"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans  
                            http://www.springframework.org/schema/beans/spring-beans.xsd  
                            http://www.springframework.org/schema/mvc  
                            http://www.springframework.org/schema/mvc/spring-mvc.xsd 
                            http://www.springframework.org/schema/tx 
                            http://www.springframework.org/schema/tx/spring-tx.xsd
                            http://www.springframework.org/schema/context  
                            http://www.springframework.org/schema/context/spring-context.xsd">
    	<!-- 配置springmvc -->
    	<!-- 1.开启 springmvc注解模式-->
    	<!-- 简化配置
    		 (1)自动注册 DefaultAnnotationHandlerMapping,AnnotationMethodHandlerAdapter
    		 (2)提供一系列:数据绑定,数字日期的format @NumberFormat,@DateTimeFormat
    			xml和json默认读写配置
    	 -->
    	<mvc:annotation-driven/>
    	
    	<!-- 
    	 <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"> 
        <property name="contentType" value="application/json"/> 
    	</bean> 
    	 -->
    	<!-- 2.servlet-mapping 映射路径:“/” -->
    	<!-- 静态资源默认servlet配置 
    		(1):加入对静态资源的处理:js,gif,png
    		(2):允许使用"/"做整体映射
    	-->
    	
    	<mvc:default-servlet-handler/>
    	
    	<!-- 3.配置jsp 视图解析器 ViewResolver -->
    	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    			<property name="viewClass"  value="org.springframework.web.servlet.view.JstlView"/>
    			<property name="prefix" value="/WEB-INF/jsp/"/>
    			<property name="suffix" value=".jsp"/>
    	</bean>
    	<!-- 4:扫描web相关的bean -->
    	<context:component-scan base-package="com.alan.seckil.web"/>
    </beans>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID"
    version="3.1" metadata-complete="true">
    <!-- 配置springmvc前端控制器 DispatcherServlet -->
      <servlet>
      <servlet-name>seckil-dispatcher</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!-- 配置springmvc需要加载的配置文件
      srping-dao.xml,spring-service.xml,spring-web.xml
      Mybatis->spring->springmvc
      -->
      <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:/spring/sping-*.xml</param-value>
      </init-param>
      </servlet>
    <servlet-mapping>
    <servlet-name>seckil-dispatcher</servlet-name>
    <!-- 默认匹配所有的请求 -->
    <url-pattern>/</url-pattern>
    </servlet-mapping>
    </web-app>

    http://img3.mukewang.com/5a7eb9270001e75305590484.jpg

    http://img3.mukewang.com/5a7eb9270001606c08550559.jpg

    http://img2.mukewang.com/5a7eb9270001b31711090887.jpg

    找不到映射怎么回事?

    http://img2.mukewang.com/5a7eb98d0001099e13380868.jpg

  • 慕粉3846091
    2016-10-28 20:14:01

    老师应该配置了tomcat的

  • 金小荣她老公
    2016-09-25 13:22:16

    web.xml

    http://img.mukewang.com/57e75e0000012b9004450130.jpg

    spring-web.xml

    http://img.mukewang.com/57e75e450001449407360210.jpg

    SeckillController.java

    http://img.mukewang.com/57e75e74000186c506540482.jpg

    然后运行后,浏览器打开的地址是这样

    http://img.mukewang.com/57e75ec90001f4fa10110446.jpg

    写成http://localhost:8080/seckill/list 反而 打不开页面

    http://img.mukewang.com/57e75eef000111c307380333.jpg

    想问下为什么,没明白

  • 宝藏男孩lppp
    2016-09-22 03:20:22

    默认是localhost:8080/{项目名}

    老师在配置文件默认就是/

    所以就酱

  • adai123
    2016-08-28 00:16:32

    这是个坑啊,

    输入URL:

    http://localhost:8080/seckill

    才能进入 LIST界面,不知道是啥原因,谁来指点一下

  • taoy
    2016-08-10 15:19:43

    @Controller
    @RequestMapping("/seckill")
    public class SeckillController {

        private final Logger logger = LoggerFactory.getLogger(this.getClass());
        @Autowired
        private SeckillService seckillService;
        
        @RequestMapping(value="/list",method=RequestMethod.GET)
        public String list(Model model) {
            model.addAttribute("list", seckillService.getSeckillList());
            return "list";
        }

    ......

  • 美队峰3460119
    2016-08-10 12:10:14

    你Controller里面的RequestMapping是不是写错了?