필터 사용에 대한 제안이 필요합니다. 단지 내가 생각하고있는 것을 알고 싶었다. 은 좋은 방법이다.
그래서 JSP, 스프링 MVC 2.5, 자바 스크립트 등을 사용하여 5-6 화면을 개발해야합니다.
모두 이러한 화면은 드롭 다운 목록 등의 공통 데이터 요소를 많이 공유합니다. 필터 구현 중 필터의 URL 패턴 아래에있는 모든 화면이이 데이터를 가져 오도록 필터 ModelMap 의 바로 아래에이 드롭 다운 값을 채 웁니다.
올바른 방법입니까?스프링 MVC 필터 솔루션
답변
필자는 필터가 트릭을 수행 할 것으로 생각하지만,이 접근 방식을 벗어날 것입니다. 또한 Spring의 인터셉터를 사용하여 동일한 작업을 수행하고 종속성 주입, 트랜잭션 관리 및 Spring 데이터 패키지와 같은 Spring의 기능을 여전히 사용할 수 있습니다.
Dispatcher 설정을위한 구성에서 인터셉터를 설정하십시오.
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="org.my.domain.interceptors.LookupHandlerInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
는 그런 다음 인터셉터 클래스를 정의 :
public class LookupHandlerInterceptor extends HandlerInterceptorAdapter {
@Autowired
LookupLoaderApplicationListener loader;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
request.setAttribute("lookupList", loader.getCategories());
return super.preHandle(request, response, handler);
}
}
이 방법 당신은 당신이 설정을 가질 수있는 지속성 당신이 당신의 응용 프로그램 내에서 사용할 수있는 다른 봄 기능을 활용할 수있다. 그런 다음 데이터베이스에서이 목록을 관리 할 수 있습니다.
감사합니다 케빈. 나는 모델 속성에 데이터를 유지한다고 생각합니다. @SessionAttributes와 함께 modelMap을 사용하여 여러 요청간에이를 유지해야합니다. – Tiles787
나는 응용 프로그램의 별도 부분에서 컨트롤러의 올바른 기능에 중요한 최소한의 놀라움과 숨어있는 코드의 원칙을 위반하는 것이 "마법"의 어떤 비트/영리함이이 작업에서 짜내 어 졌는지 가치가 없다고 생각합니다.
향후 개발자가 화면을 설정하는 코드를 숨기는 이유는 무엇입니까?
그들은 모두 공통된 참조 데이터를 공유하기 때문에 모든 시간 동안 영원히 유지 될 것입니까? 서로 다른 화면에 대한 요구 사항이 서로 다르기 시작하면 빨리 추락합니다.
기본적으로 컨트롤러를 만들기 위해 구성 대신 상속을 사용하는 것과 컨트롤러의 코드를 볼 수없는 것 외에 모든 단점이 있습니다. 간단하게 공통 작업을 수행하는 유틸리티 빈을 만들어 컨트롤러에 삽입하고 한 줄의 @ModelAttribute
메서드를 호출하여 호출하면됩니다. 앞으로 개별 요구 사항이 바뀔 때 혼란이 줄어들 것입니다.
- 1. 스프링 MVC/보안 - "상점 닫힙니다"보안 필터
- 2. 스프링 MVC : 목록에 여러 개의 필터 추가하기
- 3. Django 필터 쿼리 솔루션
- 4. 스프링 MVC 커스텀 인증
- 5. , 나는 스프링 MVC 컨트롤러가 스프링 MVC 컨트롤러
- 6. 스프링 통합 필터
- 7. 스프링 부트의 필터 순서
- 8. 스프링 서블릿 필터
- 9. 스프링 보안 필터
- 10. 스프링 웹 필터 매핑
- 11. 스프링 인터셉터/필터
- 12. XSS에 대한 스프링 MVC 보호
- 13. 스프링 MVC -
- 14. 스프링 MVC
- 15. 스프링 MVC |
- 16. 스프링 MVC
- 17. 스프링 MVC
- 18. 스프링 MVC
- 19. 스프링 MVC
- 20. 스프링 MVC
- 21. mvc 컨트롤러에서 스프링 주입 속성
- 22. 스프링 통합 에러 채널 솔루션
- 23. MVC 인터셉터 대 스프링 보안 필터 대 뭔가 ...?
- 24. 대신 web.xml 파일 필터 매핑을 추가 스프링 MVC 컨트롤러있어서
- 25. C# MVC 솔루션?
- 26. ASP.NET MVC 솔루션 조직
- 27. MVC 솔루션 구조
- 28. 스프링 MVC 스프링 : 바인드 태그
- 29. 스프링 웹 플로우가있는 스프링 MVC
- 30. 스프링 MVC 대 ASP.NET (MVC?)
필터? 절대적으로하지. 봄 요격기, 아마도,하지만 개인적으로 코드 재사용에 대한 지나치게 미세한 접근 방식을 추구 할 때 가장 놀랄만하지 않은 원칙을 너무 크게 위반하는 것을 개인적으로는 싫어할 것입니다. 코드를 유틸리티 클래스에 넣고 각 컨트롤러의 @ModelAttribute 메서드에서 호출합니다. – Affe
@Affe이 접근법을 성공적으로 구현 한 요격기 접근 방식에 동의합니다. –
감사 주셔서 감사합니다. 마이크로 코드 재사용 접근 방식이 내 목표 였어 :) – Tiles787