나는이 방법을 필요 이상으로 혼란스럽게 만들었습니다. 다음은 단순화 된 버전입니다.스프링 mvc 폼이 다른 컨트롤러에 게시되거나이를 overthinking
1 - 오른쪽 위 모서리의 모든 페이지에 드롭 다운과 제출 버튼이 있습니다. 드롭 다운 목록은 언어 목록입니다. 사용자는 언어를 변경하고 제출 단추를 눌러 언어 컨트롤러로 이동하여 현재 언어를 업데이트 할 수 있습니다.
public class LanguageController {
@ModelAttribute("languageList")
public LanguageList populateLanguageList() {
return LanguageDAO.all();
}
@RequestMapping("/setLanguage.mvc")
public ModelAndView setLanguage(
@ModelAttribute("languageForm") LanguageForm languageForm,
HttpServletRequest request,
HttpServletResponse response
){
//do stuff
}
}
<form:form modelAttribute="languageForm">
<form:select path="acctGrpId" >
<form:options items="${languageList}"/>
</form:select>
<input type="submit"/>
</form:form>
모든 페이지에서 어떻게 사용할 수 있습니까? 페이지가 사용자를 편집/생성하는 페이지 일 수 있으므로 해당 페이지의 "컨트롤러"는 실제로 UserController 또는 RoleController 또는 DepartmentController이고 LanguageController는 아닙니다. 페이지가 무엇을하고 있는지에 관계없이이 특정 JSP가 특정 컨트롤러에 도달해야합니다.
방금 내 게시물을 업데이트했습니다. 잘하면 내 실제 문제는 동일한 JSP에서 여러 컨트롤러를 사용하고 있다는 의미입니다. 페이지 컨트롤러가 무엇으로 설정되어 있는지에 관계없이 jsp 페이지에 "이 컨트롤러 사용"을 어떻게 말할 수 있습니까? – samwise
어쩌면 나는 아직도 그것을 얻지 못한다. 양식 태그에 다른 작업 속성을 지정하십시오. 이렇게하면 LanguageController가 제공해야하는 양식이 제공되며 실제 페이지의 양식은 페이지의 컨트롤러에서 제공됩니다. – soulcheck