데이터베이스에 저장된 여러 값 중 하나를 표시하는 단일 페이지가있는 struts2 응용 프로그램이 있습니다. 신청서는 많은 부서가있는 학교를위한 것이며 각 부서는 많은 프로그램을 가지고 있습니다. 부서 페이지는이struts2에서 동적 리소스에 친숙한 URL 만들기
department.action?id=2
같은 URL을 사용하여 액세스하고 DepartmentAction 디스플레이에 대한 ID = 2학과를로드합니다. 사용자가 사이트를 둘러보고 있으면이 모든 것이 가능하지만 신문의 엔지니어링 부서에 대한 링크를 제공하려는 경우 불편합니다. 링크는 www.myschooldomain.com/department.action?id=2이어야합니다. 이 문제는 여러 가지가 있습니다.
먼저 사용자 친화적이지 않습니다. 둘째, 부서가 동적으로 유지되고 부서의 ID가 경고없이 링크가 불안정해질 수 있기 때문에 부서지기 쉽습니다.
www.myschooldomain.com/department/engineering과 같은 URL을 인쇄하여 어떻게 든 department.action? id = 2로 이동하는 것이 좋습니다.
지금까지의 생각 : 끝에있는 부서 이름의 URL을 구문 분석 한 다음 이름별로 검색하는 작업을 작성하십시오. 어쩌면 각 부서의 데이터베이스에 friendlyurl 필드를 추가 할 수 있습니다.
그러나 질문은 : struts2에서 더 나은 방법이 있습니까?
감사합니다.
업데이트 (2009 년 5 월) : 나는이 문제에 대해 비틀 거리며 우연히 만났습니다.
부서라고하는 struts.xml에 새 패키지를 만들었습니다. 이 패키지에는 *에 매핑 된 작업이 하나만 있습니다. 따라서 mydomain.com/departments/anything.html에 대한 모든 요청을 포착합니다.
조치 클래스에서 나는 단순히 URL을 구문 분석하고 departments /와 .html 사이의 부분을 찾는다. 그리고 그 이름은 부서명이므로 데이터베이스에서 조회를 수행 할 수있다. 이것은 거의 5 개월 동안 정상적으로 작동했으며 사이트의 다른 영역에 대해이를 구현했습니다.
나는이 오래된 스레드를 부활 시키려고하지 않았다. 나는 새로운 대답을 보았다고 생각했다. – Pool