开发者社区 问答 正文

null?报错

web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>mn_spring_mvc_template</display-name>
   <servlet>
           <servlet-name>template</servlet-name>
           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
           <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
           <servlet-name>template</servlet-name>
           <url-pattern>*.do</url-pattern>
   </servlet-mapping>
   <context-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:ApplicationContext.xml</param-value>
    </context-param>
    <context-param>
           <param-name>log4jConfigLocation</param-name>
           <param-value>classpath:log4j.properties</param-value>
    </context-param>   
    <listener>
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
     </listener>    
     <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
  <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>


ApplicationContext.xml

<?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:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="    
    http://www.springframework.org/schema/beans    
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
    http://www.springframework.org/schema/context    
    http://www.springframework.org/schema/context/spring-context-3.1.xsd"
    default-autowire="byName">
 </beans>

template-servlet.xml

<?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:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="    
    http://www.springframework.org/schema/beans    
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
    http://www.springframework.org/schema/context    
    http://www.springframework.org/schema/context/spring-context-3.1.xsd"
    default-autowire="byName">
     <context:component-scan base-package= "mn.spring.mvc.template.controller.*" />     
     <bean id= "jspViewResolver"  class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
           <property name= "viewClass"   value ="org.springframework.web.servlet.view.JstlView" />
               <property name= "prefix" value = "/view/" />
               <property name= "suffix" value = ".jsp" />
      </bean>
    </beans>

Controller


@Controller
@RequestMapping("/controllertest")
   public class SpringMvcTemplateController {

    public SpringMvcTemplateController() {

    }
   @RequestMapping("/shows")
     public String showTemplate() {
             System.out.println("show_template");
            return "template";
     }
}

page: (1) WebContent/index.jsp

       (2)  WebContent/view/template.jsp


pageUrL : http://127.0.0.1:8080/mn_spring_mvc_template/controllertest/shows.do

展开
收起
爱吃鱼的程序员 2020-06-22 16:53:51 382 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    在controller的方法里面打日志,后台查不到日志信息,应该是没进controller的缘故吧?如果是这个问题的话,想问熟悉这一块的朋友这个会是什么原因造成,spring接收到request后,不传进controller呢?

    template-servlet.xml

    你在哪里装载的?web.xml看不到啊?

    你该在web里面加载<spanstyle="font-size:9px;">template-servlet.xml


    回复<aclass='referer'target='_blank'>@Beyond-Bit:加了也没有想过呢,我印象中之前写的也没加也能用哦..回复<aclass='referer'target='_blank'>@huar:昂,这啊,那就是缺少:<!--启动注解驱动的SpringMVC功能,注册请求url和注解POJO类方法的映射--><mvc:annotation-driven/><servlet>不默认设置的话,在WEB-INF下会自动生成servlet-name-servlet.xml。

    <spanstyle="color:#E53333;font-family:Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"><propertyname="prefix"value="/view/"/>

    <spanstyle="font-size:14px;line-height:22px;">这样?还是这样?

    <spanstyle="font-size:14px;line-height:22px;"><spanstyle="color:#E53333;font-family:Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"><propertyname="prefix"value="view/"/>

    他后台打印log.连Controller都没进去.应该和视图没关系.都不行呢,呵呵<spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;color:#E53333;"><servlet-mapping>
    <spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;color:#E53333;">      <servlet-name>template</servlet-name>
    <spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;color:#E53333;">      <url-pattern> .do</url-pattern>
    <spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;color:#E53333;">  </servlet-mapping>你这里都写了只拦截.do结尾的url了,<spanstyle="color:#333333;font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">/controllertest<spanstyle="color:#333333;"><spanstyle="color:#E53333;font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">/shows这个肯定不行啊,这样你试下/<spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;color:#333333;"><spanstyle="color:#E53333;background-color:#FFFFFF;">shows.do
    兄弟你好,我的url是http://127.0.0.1:8080/mn_spring_mvc_template/controllertest/shows.do,有.do的。

    应该是注解没加好吧.

    <preclass="brush:xml;toolbar:true;auto-links:false;"><beansxmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:p="http://www.springframework.org/schema/p"  xmlns:context="http://www.springframework.org/schema/context"  xmlns:mvc="http://www.springframework.org/schema/mvc"  xmlns:aop="http://www.springframework.org/schema/aop"  xmlns:tx="http://www.springframework.org/schema/tx"  xsi:schemaLocation="    http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans.xsd    http://www.springframework.org/schema/context    http://www.springframework.org/schema/context/spring-context.xsd    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/aop     http://www.springframework.org/schema/aop/spring-aop.xsd    http://www.springframework.org/schema/tx     http://www.springframework.org/schema/tx/spring-tx.xsd"><preclass="brush:xml;toolbar:true;auto-links:false;"><!--添加注解驱动--> <mvc:annotation-driven/>试了一下,也不是注解的问题呢,呵呵

    你先运行这个地址<spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"> <arel="nofollow">http://127.0.0.1:8080 看tomcat启动了没

    在运行这个<spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"> <arel="nofollow">http://127.0.0.1:8080/mn_spring_mvc_template 看行不

    在运行这个<spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"> <spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"> <arel="nofollow">http://127.0.0.1:8080/mn_spring_mvc_template/controllertest/shows.do

    <spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">

    <spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">publicSpringMvcTemplateController(){

    <spanstyle="font-family:幼圆,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">  }把这个去掉看下

    tomcat已经启动,通过路径也可以直接访问.jsp文件,就是.do不行。

    <spanstyle="color:#FF6600;font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;">加了也没有想过呢,我印象中之前写的也没加也能用哦..?

    <spanstyle="color:#FF6600;font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><spanstyle="color:#000000;">你能告诉我你的springmvc版本多少吗?你曾经springmvc多少版本?

    <spanstyle="color:#FF6600;font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><spanstyle="color:#000000;">我可以告诉你的是: <mvc:annotation-driven/>要加的

    <spanstyle="color:#FF6600;font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><spanstyle="color:#000000;"><spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><!--启动注解驱动的SpringMVC功能,注册请求url和注解POJO类方法的映射-->

    <spanstyle="line-height:normal;">换句话说就是如果木有这个,你的注解urlpojo相当于失败、正好你的404说明url根本木有被处理、

    <spanstyle="color:#FF6600;font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><spanstyle="color:#000000;"><spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;">官方的最减配置如下:

    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;">

    <preclass="brush:xml;toolbar:true;auto-links:false;"><?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><mvc:annotation-driven/></beans><spanstyle="color:#E53333;"><mvc:annotation-driven/><spanstyle="color:#E53333;">来自上面的头文件声明,所以你要声明头文件,你上面的配置木有、

    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;">官方的解释:<arel="nofollow">http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-config

    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;">

    <spanstyle="color:#FF6600;font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><spanstyle="color:#000000;"><spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"> 

    回复<aclass="referer"target="_blank">@huar:回复<aclass='referer'target='_blank'>@huar:方便你给我我调试看看、你的spring哪个版本?兄弟啊、头声明文件xmlns和xsi我都加了mvc注解,servlet.xml里面也加了<mvc:annotation-driven/>,可还是一样的问题啊,感觉他死活就不进controller呢..

    <preclass="brush:xml;toolbar:true;auto-links:false;"><context:component-scanbase-package="mn.spring.mvc.template.controller."/>

    <spanstyle="color:#E53333;font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:normal;background-color:#FFFFFF;color:#64451D;">检查下Controller在这个包下面么?

    回复<aclass='referer'target='_blank'>@huar:那就把log4j的日志等级调成DEBUG,再看看到底卡在哪一步了。“packagemn.spring.mvc.template.controller;”在的呢,而且名字也没有问题。

    logdebug出来的信息是“NomappingfoundforHTTPrequestwithURI”,好奇怪的问题。

    [QC]DEBUG[http-bio-8080-exec-3]org.springframework.web.servlet.DispatcherServlet.doService(823)|DispatcherServletwithname'template'processingGETrequestfor[/mn_spring_mvc_template/controllertest/shows.do]

    [QC]DEBUG[http-bio-8080-exec-3]org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(209)|Lookinguphandlermethodforpath/controllertest/shows.do
    [QC]DEBUG[http-bio-8080-exec-3]org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(219)|Didnotfindhandlermethodfor[/controllertest/shows.do]
    [QC]WARN[http-bio-8080-exec-3]org.springframework.web.servlet.DispatcherServlet.noHandlerFound(1108)|NomappingfoundforHTTPrequestwithURI[/mn_spring_mvc_template/controllertest/shows.do]inDispatcherServletwithname'template'
    [QC]DEBUG[http-bio-8080-exec-3]org.springframework.web.servlet.FrameworkServlet.processRequest(946)|Successfullycompletedrequest
    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">publicStringshowTemplate(){
    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">       System.out.println("show_template");
    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">      return"template";

    <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">   }

    <spanstyle="font-size:14px;line-height:22px;">方法加上request和response参数试试~

    请求没进controller,加上了request/response参数也查不出东西(已测试)。

    2020-06-22 16:54:08
    赞同 展开评论
问答分类:
问答地址: