初学spring那些事——spring mvc 404错误

1、spring mvc 404错误

输入地址,浏览器只显示404,并没有其它多余提示,在Controller类里下断点发现并无执行。纠结了一天后才百度到是由于servlet.xml里没有配置<mvc:annotation-driven />。html

        <mvc:annotation-driven />是一种简写形式,彻底能够手动配置替代这种简写形式,简写形式可让初学都快速应用默认配置方案。<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。没有这两个bean@Controller、@RequestMapping@RequestBody/ResponseBody等spring mvc注解没法工做。web

        与<mvc:annotation-driven />相似的是<context:annotation-config>,它使通用注解得以工做,如:@Required, @Autowired, @PostConstructspring

    注解问题解决后浏览器依然报404错误,不过有了提示,路径不对找不到访问资源。再次检查servlet.xml配置,发现是文件映射路径解析配置错误。api

<bean 浏览器

class="org.springframework.web.servlet.view.InternalResourceViewResolver"服务器

p:viewClass="org.springframework.web.servlet.view.JstlView"mvc

p:prefix="classpath/view/jsp/" app

p:suffix=".jsp" />jsp

缘由是classpath在p:prefix里不起做用,会被直接解析成“classpath”字符串。映射路径解析规则 :假设Controller类里returned login, 拼接prefix、suffix值造成classpath/view/jsp/login.jsp。服务器里没有classpath/view/jsp这个目录,页面发布在/WEB-INF/classes/view/jsp/目录下,将classpath/view/jsp/改成/WEB-INF/classes/view/jsp/,成功反问到页面。单元测试

2、Unable to compile class for JSP……   The method getJspApplicationContext(ServletContext) is undefined for the type JspFacto错误

        404错误解决后能够访问到jsp页面,但没法正常显示,报500错误附带提示 Unable to compile class for JSP……   The method getJspApplicationContext(ServletContext) 

is undefined for the type JspFacto错误。 缘由是lib包中存在两个servlet-api包引发冲突,注释了pom.xml里的jsp依赖后低版本的servlet-api包消失,页面可以正常访问。

3、spring集成Junit单元测试问题

    低版本Junit jar包不兼容spring,建议用4.11以上版本。起先用4.1版本的junit包,对service层代码进行单元测试的时候程序报错,后来换成4.8版本仍是报错,最后换成4.11版本才成功运行。

问题:

        关于Command Object。我并无配置Command Object,Controller里也没有写任何相关的代码,或许有点关系的是我把Command类和Controller类一块放在web包下,servlet.xml配置了这个包的扫描,且表单input标签name属性值和Command类属性值一致。运行程序时竟然可以自动将表单提交数据(userName和password)封装到Command类里,这真实太神奇啦!这个问题待进一步学习过程当中解决。

相关文章
相关标签/搜索