현재 struts + gauce 4.0 으로 개발하려 합니다.
보통 struts 에서 작업시
Controller 는 struts Action 을 사용하고
View 는 jsp 로 처리합니다.
그런데 Gauce 에서 DataSet Header 생성시 View (jsp) 는 필요하지 않기 때문에
struts Action 에서 DataSet 을 생성 하고 싶습니다.
struts Action 에서 비지니스 로직을 처리하고 setAttribute 하고 나서
jsp 로 포워드(ActionForward) 시킨후 jsp 에서 gdml 로 처리시 잘 나옵니다.
그런데 jsp 를 두지 않고 Action 내부에서 DataSet Header 를 생성하니 에러가 납니다.
public ActionForward listContent(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
GauceInputStream gis = ((HttpGauceRequest) request).getGauceInputStream();
GauceOutputStream gos = ((HttpGauceResponse) response).getGauceOutputStream();
GauceDataSet dSet_master = new GauceDataSet("dataset_master");
gos.fragment(dSet_master);
......
DataSet 생성
......
gos.write(dSet_master);
gos.close();
return null;
}
DataSet 은 생성되어 화면 Grid 에 잘 나옵니다.
문제는 Struts 에서 에러가 나더군요.
java.lang.IllegalStateException: can't forward after committed
에러가 나더군요.
DataSet 생성을 Action 에서 담당하고 싶은데..
잘되질 않네요..
Spring MVC 사용할 경우
ModelAndView 를 null 로 리턴해서 처리하니 되더군요...
그럼 수고하세요