У меня есть @Controller
, у которого есть @RequestMapping
для сопоставления конечной точки с моей страницей jsp. В этом контроллере я использую аннотацию @ModelAttribute
, чтобы сделать @Bean
, который у меня есть в моем файле конфигурации, доступным в моем jsp.
@Controller
public class WebPageController {
@Autowired
private MyBean myBean;
@ModelAttribute
public MyBean myBean() {
return myBean;
}
@RequestMapping("/mypage")
public String myPage() {
return "myPage";
}
}
В моем файле конфигурации у меня есть @Bean
и InternalResourceViewResolver
.
@Configuration
@EnableWebMvc
@ComponentScan({"my.package"})
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public MyBean myBean {
return new MyBean();
}
@Bean
public InternalResourceViewResolver getInternalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/pages/");
resolver.setSuffix(".jsp");
return resolver;
}
}
Это отлично работает, и я могу получить доступ к myBean
на моей странице jsp.
<script type="text/javascript">
version = "${myBean.version}"
</script>
Однако я хочу переместить свой контроллер в конфигурацию Java. Я могу выполнить то же самое @RequestMapping
, используя ViewController
в своем WebConfig
.
@Override
public void addViewControllers(final ViewControllerRegistry viewControllerRegistry) {
viewControllerRegistry.addViewController("/myPage").setViewName("myPage");
}
Теперь мне нужно добавить myBean
как @ModelAttribute
, чтобы он был доступен на myPage.jsp
. Как я могу сделать это в конфигурации Java?
EDIT: Это не дубликат этого вопроса< /а>. Это показывает, как вы могли бы сделать это с конфигурацией xml. Я хотел бы знать, как это сделать в моем файле Java @Configuration
.
InternalResourceViewResolver
так, чтобы bean-компоненты отображались в JSP (через атрибуты запроса, что эквивалентно тому, что происходит с атрибутами модели). - person Sotirios Delimanolis   schedule 28.10.2015InternalResourceViewResolver
. Делаете ли вы это в XML или Java, не имеет значения. - person Sotirios Delimanolis   schedule 29.10.2015