[java]springmvc中controller路由出现404
problem
[java]springmvc中controller路由出现404
reason
可能原因有很多
- idea配置不对
- 编译配置不对
- xml配置
- jsp位置
solution
-
核对idea配置
mac: idea->File -> Project Structure
最重要的是 Artifacts,默认配置不对需要手动添加lib包
-
核对编译配置
mac: idea -》Run -》Edit Configurations -》 点绿色的+号,选择 tomcat-->local -》出现弹窗
弹窗配置server
- name: tomcat8
- application server: 选择tomcat 的安装目录
- URL: 改为 http://localhost:8080/ 默认是 http://localhost:8080/spring02_mvc_war_exploded/
弹窗配置Deployment
- 点击 + 号
- 选择: Artifact...
- 选择完成后,中间区域出现 spring02-mvc:war exploded
- Application context: / 默认是 /spring02_mvc_war_exploded
- xml配置
xml
<!-- web/WEB-INF/web.xml 重要! 否则controller新的路由会出现404
修改 url-pattern 标签 修改前: <url-pattern>*.form</url-pattern> 修改后: <url-pattern>/</url-pattern>-->
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<!-- <url-pattern>*.form</url-pattern>-->
<url-pattern>/</url-pattern>
</servlet-mapping>
- jsp配置
- 配置文件: web/WEB-INF/dispatcher-servlet.xml
- JSP 根据配置存放jsp文件配置
xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
// <!--支持注解,例如@Controller,对应src下controller的包名-->
<context:component-scan base-package="com.ah" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
// <!-- 配置JSP页面的位置:比如controller中return "hi" 对应文件位置是 /web/template/hi.jsp -->
<property name="prefix">
<value>/template/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>