Java 弹簧映射问题

Java 弹簧映射问题,java,spring,spring-mvc,Java,Spring,Spring Mvc,我得到以下错误: 找不到具有的HTTP请求的映射 DispatcherServlet中的URI[/my app] 名称为“web” My web.xml看起来像: <servlet> <servlet-name>web</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <lo

我得到以下错误:

找不到具有的HTTP请求的映射 DispatcherServlet中的URI[/my app] 名称为“web”

My web.xml看起来像:

<servlet>
  <servlet-name>web</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>web</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>
<bean name="myController" class="com.app.web.MyController" />

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass"
         value="org.springframework.web.servlet.view.JstlView" />
  <property name="prefix" value="/WEB-INF/jsp/" />
  <property name="suffix" value=".jsp" />
</bean>

网状物
org.springframework.web.servlet.DispatcherServlet
1.
网状物
/*
我的web-servlet.xml如下所示:

<servlet>
  <servlet-name>web</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>web</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>
<bean name="myController" class="com.app.web.MyController" />

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass"
         value="org.springframework.web.servlet.view.JstlView" />
  <property name="prefix" value="/WEB-INF/jsp/" />
  <property name="suffix" value=".jsp" />
</bean>

任何帮助/解释都会很好。此外,控制器中的视图参数应该是什么


我的目标是能够击中
http://localhost:8080/my-app
并被路由到MyController,MyController随后将加载给定的jsp。

看起来DispatcherServlet正在尝试处理/my app的请求,这向我表明您的web.xml servlet映射正在将该空间的请求定向到DispatcherServlet

你可能有这样的东西

<servlet-mapping>   <servlet>dispatcher</servlet>   <url-pattern>/*</url-pattern> </servlet-mapping> 
dispatcher/*
尝试使用不同的扩展名(.do)调用控制器,并更新servlet映射以适应需要

 <servlet-mapping>   <servlet>dispatcher</servlet>   <url-pattern>*.do</url-pattern> </servlet-mapping>
dispatcher*.do
或将/*更改为/


希望有帮助。

看起来DispatcherServlet正在尝试处理/my app的请求,这向我表明您的web.xml servlet映射正在将该空间的请求定向到DispatcherServlet

你可能有这样的东西

<servlet-mapping>   <servlet>dispatcher</servlet>   <url-pattern>/*</url-pattern> </servlet-mapping> 
dispatcher/*
尝试使用不同的扩展名(.do)调用控制器,并更新servlet映射以适应需要

 <servlet-mapping>   <servlet>dispatcher</servlet>   <url-pattern>*.do</url-pattern> </servlet-mapping>
dispatcher*.do
或将/*更改为/


希望有帮助。

我觉得您的配置很好。在您的
MyController
中,确保您有
myapp
的请求映射,如下所示:-

@Controller
public class MyController {
   @RequestMapping(value="/my-app", method=RequestMethod.GET)
   public String mainPage() {
      return "index";
   }
}

当您呼叫
http://localhost:8080/my-应用程序
,服务器将从
/WEB-INF/jsp/
文件夹返回
index.jsp

我觉得您的配置很好。在您的
MyController
中,确保您有
myapp
的请求映射,如下所示:-

@Controller
public class MyController {
   @RequestMapping(value="/my-app", method=RequestMethod.GET)
   public String mainPage() {
      return "index";
   }
}

当您呼叫
http://localhost:8080/my-应用程序
,服务器将从
/WEB-INF/jsp/
文件夹返回
index.jsp

是的。或者,您也可以使用BeanNameUrlHandlerMapping,但现在这已经是一种老派做法:-)但是,如果您确实定义了BeanNameUrlHandlerMapping实例,您还必须显式请求DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter,因为它们不会隐式创建。此外,bean名称的意义是什么(在指定控制器类的地方)?spring如何知道调用该控制器(因为“myController”从未被显式调用)?@joe:请查看第13.4.2节。或者,您可以使用BeanNameUrlHandlerMapping,但现在这是一个相当老派的做法:-)但是如果您确实定义了BeanNameUrlHandlerMapping实例,您还必须显式请求DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter,因为它们不会隐式创建。此外,bean名称(指定控制器类的位置)的意义是什么?spring如何知道调用该控制器(因为从未显式调用过“myController”)@joe:请看第13.4.2节