当我访问网址
http://localhost:8080/fars_v1/user/showUser?usernam e=aaa&password=aaa 时:
出现404错误,后台controller都能正常运行。看代码:
@Controller
@RequestMapping("/user")
public class UserInfoController {
@Resource
private IUserInfoService userInfoService;
@RequestMapping("/showUser")
public String getUserInfo(HttpServletRequest request,Model model){
String name=request.getParameter("username");
String pwd=request.getParameter("password");
System.out.println("---------"+name+","+pwd);
UserInfo user = this.userInfoService.getUserByName(name, pwd);
model.addAttribute("user", user);
System.out.println("1");
return "showUser";
}
}
<display-name>Archetype Created Web Application</display-name>
<!-- Spring和mybatis的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mybatis.xml</param-value>
</context-param>
<!-- 编码过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 防止Spring内存溢出监听器 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!-- Spring MVC servlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
地址里的username 你写的不对吧?
为什么不返回ModelAndView呢?
既然出现404的话那应该是你路径访问出错
而且根据你requestmapping路径来看
试试 http://localhost:8080/user/showUser?username=aaa&password=aaa
你的404是找不到Controller 还是 找不到JSP
既然已经进去controller 那就是你jsp路径没有搞对的原因了,好好确认一下路径
你自己都定位到找不到jsp了还有什么好说的,肯定是jsp放错地方了,Controller都进去了,实在找不出原因的时候,我建议你可以返回ModelAndView,然后debug看看ModelAndView里面的jsp页面地址,这样你就可以完全明明白白了,现在基本都是前后端完全分离了建议不要玩返回model这类的了直接返回json多爽
把你的jsp页面放到webapp下看看能否正常访问
从你的代码看没有问题,你说controller正常运行的意思是你的controller请求到了吗,控制台都打印你的输出了吗?如果进去了,不应该返回404的
404是找不到页面的错误。你的jsp页面是放在web-Inf下面的,所以你要确定你的请求是请求转发还是重定向,如果是重定向的话是不能访问web-inf下面的路径
能进controller方法,检查jsp映射路径
把jsp文件夹移到webapp下然后把
return "showUser";
------>
return "jsp/showUser";
debug 看是否能正常访问controller,如果能正常访问的话,那就是在响应时找不到JSP的原因了,return 中的JSP路径错误
你的jsp文件在WEB-INF下不能直接访问,可以在webapp下直接放一个单独的index.jsp,在index.jsp里直接写个路径跳转过去试试。
return的时候没有返回正确的页面,可以尝试不同的方法进行页面重定向试试
代码看着没问题, 看看tomcat里面的项目根路径是不是设置错了,试试把url中项目名去掉。 或者把tomcat里webapp中你的项目文件夹删除重新生成,再试试