【问题标题】:controller path not detected by spring弹簧未检测到控制器路径
【发布时间】:2014-07-16 07:48:00
【问题描述】:

我的控制器有点问题。我想做的是使用控制器返回一个 html 页面,下面给出了我的 spring 配置和控制器

我的 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"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0" metadata-complete="true">

<display-name>myapp</display-name>

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/myapp*</url-pattern>
</servlet-mapping>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
  </web-app>

我的 mvc-dispatcher-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/WEB-INF/views/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>
<bean name="/" class="com.myapp.controller.MyAppcontroller" />
</beans>

和我的控制器

@Controller
public class next{

@RequestMapping(value = "/next" , method = RequestMethod.GET)
public ModelAndView homepage(){
    ModelAndView mv = new ModelAndView();
    mv.setViewName("next");
    return mv;
}

}

其中“next”是我想返回的 jsp 文件的名称,但它给了我一个错误“404”的链接。谁能帮我找出我的问题所在。

【问题讨论】:

  • 你能打到homepage()方法吗
  • 你要什么网址?
  • 我正在尝试点击 url "localhost:8080/myapp/next" url
  • 我无法点击 homepage() 方法。
  • 您需要在 context.xml 中使用完整的控制器扫描设置

标签: spring jsp jakarta-ee spring-mvc web


【解决方案1】:

这是您在 web.xml 中的 url 模式的问题

将 web.xml 更改为:

<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

使用此 url 模式可以处理每个 url。

【讨论】:

  • 感谢推广。有用 !!但未检测到所有 .css 和 .js 文件
  • 把css/js放到WEB-INF/css下
  • 其他明智的做法是将以下条目放入 context.xml
  • 我已经修复了它..我们实际上必须使用 servlet 映射和 servlet 名称默认放置所有 *css 、js。现在我的问题是它只检测 myAppController 类和控制器类的其余部分未检测到。我该怎么办?
  • 可以在context.xml中使用spring组件扫描
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-23
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
相关资源
最近更新 更多