SpringMVC访问不到路径

艾比利夫 2014-05-23 11:11:11

@Controller
@RequestMapping("/user")
public class UserController {

@Autowired
private UserService userService;

@RequestMapping(value="/add")
@ResponseBody
public String addUser(HttpServletRequest request,User user) {
userService.addUser(user);
request.setAttribute("user",user);
return "hello";
}
}


配置文件

<!-- 注解探测器 -->
<context:component-scan base-package="com.springapp.mvc" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>


<!-- 视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 使用JSP页面进行输出 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- 这个配置是配置JSP页面的位置 -->
<property name="prefix" value="/WEB-INF/"/>
<!-- 指定了表示层的后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>

<bean id="conversionService"
class="com.springapp.mvc.common.springmvc.IdentityToEntityConversionServiceFactoryBean" />

<!--配置spirngMVC-web的静态资源,不配会当成控制器-->
<mvc:resources mapping="/assets/**" location="assets/"/>
<mvc:resources mapping="/codefans.net/**" location="codefans.net/"/>
<mvc:resources mapping="/Css/**" location="Css/"/>
<mvc:resources mapping="/font/**" location="codefans.net/"/>
<mvc:resources mapping="/Images/**" location="Images/"/>
<mvc:resources mapping="/Js/**" location="Js/"/>
<mvc:resources mapping="/Menu/**" location="Menu/"/>
<mvc:resources mapping="/Node/**" location="Node/"/>
<mvc:resources mapping="/pages/**" location="pages/"/>
<mvc:resources mapping="/Public/**" location="Public/"/>
<mvc:resources mapping="/Role/**" location="Role/"/>
<mvc:resources mapping="/User/**" location="User/"/>



<!-- 处理文件上传处理 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8"/>

</beans>


访问localhost:8080/user/add 报404 新人初学 求教
...全文
22489 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
imdongrui 2016-07-30
  • 打赏
  • 举报
回复
<mvc:annotation-driven />不是表示mvc使用注解进行配置么,如果不配置这个的话,你在Controller里写的那些注解都无效,它应该是默认使用xml进行配置的
铁铲 2016-06-12
  • 打赏
  • 举报
回复
原因:<mvc:resources mapping="/assets/**" location="assets/"/> 这些导致 @Controller失效 所以报404 解决:加上<mvc:annotation-driven />就没有问题了 或者像楼上说的也许
一路记忆 2014-11-18
  • 打赏
  • 举报
回复
我也碰到过这个问题,在web.xml添加 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> 里面配置这个,替代spring配置文件里的 <mvc:resources mapping="" location=""/> 就可以解决。
艾比利夫 2014-05-23
  • 打赏
  • 举报
回复
我刚才试验了一下 注释掉

<!--配置spirngMVC-web的静态资源,不配会当成控制器-->
    <mvc:resources mapping="/assets/**" location="assets/"/>
    <mvc:resources mapping="/codefans.net/**" location="codefans.net/"/>
    <mvc:resources mapping="/Css/**" location="Css/"/>
    <mvc:resources mapping="/font/**" location="codefans.net/"/>
    <mvc:resources mapping="/Images/**" location="Images/"/>
    <mvc:resources mapping="/Js/**" location="Js/"/>
    <mvc:resources mapping="/Menu/**" location="Menu/"/>
    <mvc:resources mapping="/Node/**" location="Node/"/>
    <mvc:resources mapping="/pages/**" location="pages/"/>
    <mvc:resources mapping="/Public/**" location="Public/"/>
    <mvc:resources mapping="/Role/**" location="Role/"/>
    <mvc:resources mapping="/User/**" location="User/"/>
注释掉这一部分就可以了。。。但不知道原因
艾比利夫 2014-05-23
  • 打赏
  • 举报
回复
引用 7 楼 wpq139234 的回复:
看看你的web.xml

<web-app version="2.4"
	xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">


    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


    <display-name>Spring MVC Application</display-name>


    <!-- 设置Spring容器加载配置文件路径 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-context.xml</param-value>
    </context-param>

    <!-- 配置Spring核心控制器 -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:mvc-*.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

      <welcome-file-list>
          <welcome-file>aaa.jsp</welcome-file>
      </welcome-file-list>

</web-app>
疯狂的玖号 2014-05-23
  • 打赏
  • 举报
回复
看看你的web.xml
LinY_X 2014-05-23
  • 打赏
  • 举报
回复
引用 5 楼 yangqiu0928 的回复:
类不需要加@requestMapping()注解吧。 方法上面加注解,应该是这样子的吧@RequestMapping("/xxx.do")
Controller可以加@requestMapping()注解的,表示这个控制器里面的方法前面都+这个/user
shayebuhui0 2014-05-23
  • 打赏
  • 举报
回复
类不需要加@requestMapping()注解吧。 方法上面加注解,应该是这样子的吧@RequestMapping("/xxx.do")
艾比利夫 2014-05-23
  • 打赏
  • 举报
回复
引用 1 楼 lewis219 的回复:
localhost:8080/工程名称/user/add 试试
还是不行啊 后台tomcat报这个 2014-05-23 11:15:40 040 [] [DEBUG] org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:843) - DispatcherServlet with name 'dispatcher' processing GET request for [/ifr_status/] 2014-05-23 11:15:40 040 [] [WARN] org.springframework.web.servlet.DispatcherServlet.noHandlerFound(DispatcherServlet.java:1118) - No mapping found for HTTP request with URI [/ifr_status/] in DispatcherServlet with name 'dispatcher' 2014-05-23 11:15:40 040 [] [DEBUG] org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:991) - Successfully completed request 2014-05-23 11:15:42 042 [] [DEBUG] org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:843) - DispatcherServlet with name 'dispatcher' processing GET request for [/user/add] 2014-05-23 11:15:42 042 [] [WARN] org.springframework.web.servlet.DispatcherServlet.noHandlerFound(DispatcherServlet.java:1118) - No mapping found for HTTP request with URI [/user/add] in DispatcherServlet with name 'dispatcher' 2014-05-23 11:15:42 042 [] [DEBUG] org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:991) - Successfully completed request
风_流沙 2014-05-23
  • 打赏
  • 举报
回复
学习了
S117 2014-05-23
  • 打赏
  • 举报
回复
你的路径少了工程名
lewis219 2014-05-23
  • 打赏
  • 举报
回复
localhost:8080/工程名称/user/add 试试

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧