我需要你的帮助。
我是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。
我哪里错了?你能帮帮我吗?
答案 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";
}
}