2013-11-25 2 views
1

내 struts2 응용 프로그램에서 취소 할 JavaScript 함수가 있습니다. 이 메소드는 헤더에 있으며 반환 URL에 대한 window.location 만 수행합니다. Struts 2.3.8 릴리스 2.0.11 버전에서 마이그레이션을 수행 한 이후 더 이상 작동하지 않습니다. 생성 된 HTML 코드를 보면 URL이 비어 있기 때문에 태그 s : 속성을 해석하지 못합니다. 나는 효과가없는 것을 보지 못합니다. 내 IDE에서JavaScript 함수에서 s : property를 사용하려면 어떻게해야합니까?

: 방화범과

function cancel() { 
     if (!isModified || (isModified && askConfirmCancel())) { 
      window.location.replace('<s:property value="#urlBack"/>'); 
     } 
    } 

결과 :

JSP 파일에
function cancel() { 
     if (!isModified || (isModified && askConfirmCancel())) { 
      window.location.replace(''); 
     } 
    } 

:

<tr> 
    <td height="6%"align="center"> 
     <s:submit cssClass="button" key="common.initDelegate.label" align="center" theme="simple"/> 
     <s:url id="urlBack" action="myAction" includeParams="none" escapeAmp="false"> 
     <s:param name="period.periodId" value="%{period.periodId}"></s:param> 
     </s:url> 
     <input type="button" onclick="javascript:cancel()" value="<s:text name="common.button.cancel"/>"/> 
    </td> 
    </tr> 
+0

매개 변수화 된 'url' 태그를 직접 사용할 수도 있습니다. –

답변

0

<s:property value="#urlBack"/> - urlBack 전에 "#"가 필요합니까? 우리가 필요로하는 것은 public String getUrlBack() 메서드를 사용하여 작업 클래스의 urlBack 속성입니다. 그리고 Action이 성공/결과를 반환하기 전에 변수가 초기화되어야합니다.

0

먼저 변수 urlBack을 만들어 렌더링 URL로 사용해야합니다.

<s:url var="urlBack" action="myAction" escapeAmp="false"> 
    <s:param name="period.periodId" value="%{period.periodId}"></s:param> 
</s:url> 
<input type="button" onclick="cancel();" value="<s:text name="common.button.cancel"/>"/> 
<script type="text/javascript"> 
    function cancel() { 
    if (!isModified || (isModified && askConfirmCancel())) { 
     window.location.replace('<s:property value="#urlBack"/>'); 
    } 
    } 
</script> 

예를

를 들어도 기본적으로

  • includeParams 스트럿츠 2.1.3 이후 none입니다.
  • id 특성 var
  • javascript:로 대체하는 것은 JS 기능이, this 참조 URL의 프로토콜이다.
관련 문제