gpt4 book ai didi

找不到 Spring Controller

转载 作者:行者123 更新时间:2023-11-28 22:17:07 25 4
gpt4 key购买 nike

我无法调用 spring MVC Controller 。每次我点击它,它都说找不到。我的文件如下。

Web.xml

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

</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/gk1</url-pattern>
</servlet-mapping>

spring-servlet.xml

<mvc:annotation-driven />

<context:component-scan base-package="com.gkool" />

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

<mvc:resources mapping="/resources/**" location="/resources/" />

</beans>

我的 Controller 文件

package com.gkool;


@Controller
@RequestMapping("/score")
public class ScoreController {
Logger log = Logger.getLogger(ScoreController.class);
@RequestMapping(value = "", method = RequestMethod.GET)
public String printWelcome(ModelMap model) {

model.addAttribute("message", "Spring 3 MVC Hello World");
return "hello";

}

@RequestMapping(value = "/hello/{name}", method = RequestMethod.GET)
public ModelAndView hello(@PathVariable("name") String name) {

ModelAndView model = new ModelAndView();
model.setViewName("hello");
model.addObject("msg", name);

return model;

}

}

当我启动服务器并点击 URL http://localhost:8080/gk1/score 时或 http://localhost:8080/gk1/score/hello/anoop它给出错误代码 404 未找到。

附言/gk1 是 tomcat 中的模块名称。

当我启动 tomcat 服务器时,它会提供以下日志

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping registerHandlerMethod
INFO: Mapped "{[/score/hello/{name}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.ModelAndView com.gkool.ScoreController.hello(java.lang.String)
Feb 07, 2017 10:37:11 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping registerHandlerMethod
INFO: Mapped "{[/score],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.gkool.ScoreController.printWelcome(org.springframework.ui.ModelMap)
Feb 07, 2017 10:37:12 PM org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler
INFO: Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'

这意味着它将映射的 URL 标识为/score/hello/{name} 但是当我在调试中启动我的服务器并在 Controller 方法中放置调试器断点时,调试控件不会出现。

有人可以帮忙吗?

最佳答案

检查您是否在应用程序的 tomcat 配置中定义了上下文网络:

<Context docBase="/path/to/myapp.war" path="/myContext" reloadable="true"/>

现在像这样执行请求:

http://localhost:8080/myContext/gk1/score/hello/anoop

但是如果你这样定义:

<Context docBase="/path/to/myapp.war" path="/gk1" reloadable="true"/>

然后在 web.xml servlet 配置中,您只需像这样定义 servlet 映射:

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

关于找不到 Spring Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42052963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com