【问题标题】:JspViewResolver doesn't work in java configuration - based spring applciationJsp View Resolver 在基于 java 配置的 spring 应用程序中不起作用
【发布时间】:2015-04-04 13:15:44
【问题描述】:

我在 Spring Application 中只有基于 Java 的配置。我创建了用于查找/创建用户的用户实体和 Dao。 控制器有两种 GET 方法——一种用于用户,一种用于用户列表,一种 POST 方法——用于创建/编辑用户。

在 Tomcat 7 服务器上运行后,它会给出 404 错误并显示“请求的资源不可用”的消息。

Dispatcher servlet 在 SpringWebAppInitializer.class 中配置:

public class SpringWebAppInitializer  implements WebApplicationInitializer {

 @Override
 public void onStartup(ServletContext servletContext) throws ServletException {

    AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
    appContext.register(ApplicationContextConfig.class);

    servletContext.addListener(new ContextLoaderListener(appContext));

    AnnotationConfigWebApplicationContext dispatcherContext =  new AnnotationConfigWebApplicationContext();
    dispatcherContext.register(DispatcherServlet.class);

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

视图解析器在 ApplicationContextConfig.class 中定义:

@Configuration
@ComponentScan("pl.wybornie.entity")
@EnableTransactionManagement
public class ApplicationContextConfig extends WebMvcConfigurerAdapter {

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

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

userList 和 userForm 的 Jsp 文件位于 WebContent 项目的文件夹中:/WEB-INF/pages/user/*.jsp

负责获取视图的控制器粘贴在下面:

@Controller
@SessionAttributes({"user"})
public class UserController {

@Autowired
private UserDao userDao;

@RequestMapping(value = "/user_list.html", method = RequestMethod.GET)
public String list(Model model, HttpServletRequest request) {
    model.addAttribute("userList", userDao.usersList());

    return "user/userList";
}

@RequestMapping(value = "/create.html", method = RequestMethod.GET)
public String edit(@RequestParam(value="id", required=false) Long id, Model model) {
    User user = userDao.findOrCreate(id);       
    model.addAttribute("user", user);
    return "user/userForm";
}

@RequestMapping(method = RequestMethod.POST)
public String submitForm(@ModelAttribute("user") User user, BindingResult bindingResult, HttpServletRequest request, Model model) {

    userDao.saveOrUpdate(user);

    return "redirect:user_list.html";
}

  public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
  }
}

【问题讨论】:

    标签: java spring jsp controller web-application-project


    【解决方案1】:

    您的类应该扩展 WebMvcConfigurerAdapter 类。

    @Configuration
    @ComponentScan("pl.wybornie.entity")
    @EnableWebMvc
    public class ApplicationContextConfig extends WebMvcConfigurerAdapter{
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 2013-01-14
      • 2019-09-27
      • 2018-11-07
      相关资源
      最近更新 更多