Spring MVC 4无法找到页面

时间:2017-04-24 11:58:50

标签: java jsp spring-mvc

我需要你的帮助。

我是Spring MVC的新手(实际上是整个Spring。)

我接下来是一个Spring MVC 4(Anotation base)的例子。我小心翼翼地做了每一步,但我做不到。

这是我的AppConfig.java类

package main.java.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

/**
  * Created by tugrul on 24.04.2017.
*/
@Configuration
@ComponentScan(basePackages = "main.java.*")
public class AppConfig {

@Bean(name="viewResolver")
public InternalResourceViewResolver getViewResolver(){

    InternalResourceViewResolver viewResolver = new          InternalResourceViewResolver();
    viewResolver.setPrefix("/WEB-INF/pages/");
    viewResolver.setSuffix(".jsp");
    return viewResolver;
}
}

这是我的AppInitializer.java类:

package main.java.config;

import org.springframework.web.WebApplicationInitializer;
import             org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.DispatcherServlet;

import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

/**
   * Created by tugrul on 24.04.2017.
 */
  public class AppInitializer implements WebApplicationInitializer{
  public void onStartup(ServletContext servletContext) throws   ServletException {
    AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
    appContext.register(AppConfig.class);

    ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher",
            new DispatcherServlet(appContext));
    dispatcher.setLoadOnStartup(1);
    dispatcher.addMapping("/");

    dispatcher.setInitParameter("contextClass",appContext.getClass().getName());

    FilterRegistration.Dynamic fr = servletContext.addFilter("encodingFilter", CharacterEncodingFilter.class);
    fr.setInitParameter("encoding", "UTF-8");
    fr.setInitParameter("forceEncoding", "true");
    fr.addMappingForUrlPatterns(null, true, "/*");


}
}

这是My DenemeController.java类:

package main.java.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

/**
   * Created by tuğrul on 24.04.2017.
*/

@Controller
public class DenemeController {

@RequestMapping("/welcome")
public String sayHello(Model model) {
    model.addAttribute("greeting", "Welcome back to Java Tuğrul." +
            "\nYou're right way." +
            "\nAll your time on software engineering you have to keep learn new things");

    return "welcome back";
}
}

我在WEB-INF / pages /目录下有一个hello.jsp文件。

项目基本网址是localhost:8080 / deneme。当我输入这个URL到浏览器时,我可以看到index.jsp,但是当我输入映射的url是localhost:8080 / deneme / welcome时,我找不到404。

我哪里错了?你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

在DenemeController中的sayHello方法中,您将返回“wellcome back”。相反,您应该返回“hello”,这是HTML视图文件“hello.jsp”的名称。

@Controller
public class DenemeController {

    @RequestMapping("/welcome")
    public String sayHello(Model model) {
        model.addAttribute("greeting", "Welcome back to Java Tuğrul." +
            "\nYou're right way." +
            "\nAll your time on software engineering you have to keep learn new things");

        return "hello";
    }
}