Java 弹簧映射问题
我得到以下错误: 找不到具有的HTTP请求的映射 DispatcherServlet中的URI[/my app] 名称为“web” My web.xml看起来像: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
<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节