2013-01-08 1 views
2

동적 매개 변수를 사용하여 매핑을 리디렉션하는 동안 문제가 발생했습니다.struts2를 사용하여 동적 매개 변수가 작동하지 않는 상태로 리디렉션

Struts2에서 내가 매핑 해요 방법 :

<action name="Delete" class="templateLalaAction" method="remove"> 
    <result name="success" type="redirect-action"> 
     <param name="actionName">LalaTemplatesDisplay</param> 
     <param name="buId">${buId}</param> 
    </result> 
    <result name="failure" type="redirect-action"> 
     LalaTemplatesDisplay 
    </result> 
</action> 

방법 액션에서 "제거"

remove() { 

    putRequestAttribute("buId",Long.valueOf("1111")); 
    return SUCCESS; 
} 

내가 이렇게하면, 나는를하고 있어요 buId=1111이지만 앱을 실행할 때 urlbuId= (it's empty)으로 끝납니다. 즉 매개 변수가 전달되지 않습니다. 는 내가 putRequestAttribute 방법을 언급하고, static 값으로 buId 매개 변수를 전달 스트럿 설정 한 경우 :

<action name="Delete" class="templateLalaAction" method="remove"> 
    <result name="success" type="redirect-action"> 
     <param name="actionName">LalaTemplatesDisplay</param> 
     <param name="buId">1111</param> 
    </result> 
    <result name="failure" type="redirect-action"> 
     LalaTemplatesDisplay 
    </result> 
</action> 

그것은 작동하고 urlbuId=1111로 끝을.

또한 question도 읽을 수 있습니다. 허용되는 대답은 내가 한 것과 똑같이 해줄 것을 가르쳐 줍니다. 그러나 사용자가 한 의견을 읽으면 우리도 똑같은 문제가 있음을 알게 될 것입니다. 내가 뭘 잘못하고 있는거야?

답변

1

당신의 방법 안에는 buId 변수를 할당하면 액션 클래스에서 getter/setter가 필요합니다.

public String remove() { 
    buId = 1111l; 
    return SUCCESS; 
} 

은 또한 당신은 낙타의 경우 redirectAction를 사용 redirect-action에 대한 이전 구문을 사용하고 있습니다.

+0

감사합니다. 우스꽝 스럽지만 정확히 그게 문제였습니다! – periback2

+0

이 코드 (리디렉션 - 동작)가 오래되었으므로 변경하지 않는 편이 좋으므로 리팩토링 할 수 없습니다 (유감스럽게도) : / – periback2

관련 문제