2012-10-10 3 views
0

나는 까다로운 문제가 있습니다. 3 개의 iframe이있는 페이지가 있으며, 각 페이지는 콘텐츠를 표시하기 위해 struts 액션을 호출합니다.Struts에 양식 제출 : iframe 컨텍스트에서 양식 필드가 동작 속성으로없는

이제 iframe 중 하나에는 (스트럿) 양식과 (스트럿) 제출 단추가 있습니다. 다른 프레임에서는 사용자가 수행 한 마지막 작업의 기록입니다. 제출 버튼을 클릭하면 양식을 제출하고 전체 페이지를 다시 불러 와서 역사가 최신 상태가되도록하십시오.

마지막 문제가 아니지만 적어도 :

하는의 내가 있다고 가정 해 봅시다 : - 선택 1 : 스트럿츠가 형태를 선택합니다. 제출 단추를 클릭하면 관련된 struts 조치가 호출됩니다. 그러나 나는이 작업에서 "select1"속성을 갖고 싶지 않습니다. 대신이 "select1"을 포함하는 객체를 갖고 싶습니다. "fieldContainer"라는 객체를 말합니다. 양식을 제출할 때 fieldContainer.select1을 초기화해야합니다.

그래서 예를 가질 수 있습니다 :

form.jsp :

<s:form> 
    <s:select id="select1" name="select1" list="select1list"/> 
    <s:submit action="submitThisForm"/> 
</s:form> 

theAction.java :

FieldContainer fieldContainer; 

@action("submitThisForm") 
String submitThisForm() { 
    String mySelect = fieldContainer.select1 ; 
    // do something with mySelect 
    return "SUCCESS"; 
} 

나는 모든 점에 해당하는 무언가를 달성하는 방법을 모른다 , 어떤 생각?

답변

0

첫 번째 문제는 클라이언트 쪽에서 javascript를 사용하여 수행해야합니다.

제출 된 페이지의 새 콘텐츠를 표시 한 후 iframe의 부모는 다른 페이지의 업데이트를 처리해야합니다. 부모가 다른 프레임을 새로 고칩니다. 또는 필요한 정보가 제출에 대한 응답으로 숨겨지며 부모가 가져 와서 "기록 프레임"(js 기준)으로 설정합니다.

두 가지 장점이 있지만 자바 스크립트가없는 해결책은 생각할 수 없습니다.

최소한의 문제 : 조치가 fieldContainer에 대한 getter를 제공하고 필드 이름이 "fieldContainer.select1"인 경우 struts는 fieldcontainer 객체의 setter에 값을 배치합니다. fieldContainer는 valuestack 어딘가에 있어야하므로 struts는 해당 struts에 대한 설정자를 찾을 수 있습니다.