2012-07-10 4 views
0

이것은 한 달 전에 작동했으며 이제 코드를 새로 고치면 작동하지 않습니다. 여기 내 스트럿struts jsp로 오류가 전달되지 않습니다.

<action name="checkManager" class="CheckAction"> 
     <result>/pages/check_manager.jsp</result> 
    </action> 

    <action name="submitFile" class="SubmitFileAction"> 
     <result name="success">/pages/submit_file.jsp</result> 
     <result name="error">/pages/check_manager.jsp</result> 
    </action> 

그래서, 첫 페이지는 checkManager입니다 싹둑이다. submitFile 액션을 호출하는 버튼이 있습니다. 실행되면 암호를 검사하고, 실패하면 작업 클래스가 오류 결과를 보냅니다. 이제 한 달 전에 위의 결과 오류로 인해 사용자는 원래로드 된 데이터 및 오류 메시지가있는 원래 check_manager.jsp 페이지로 다시 리디렉션됩니다. 오늘은 사용자를 원시 check_manager.jsp 페이지로 리디렉션합니다. 데이터가 없다. 서블릿이 실행되지 않았고 빈 JSP 페이지가 렌더링 된 것처럼 보였다. 원본 기록을 확인한 결과이 응용 프로그램에서 변경된 내용이 없습니다.

왜 이것이 작동을 멈추는 지 이해할 수 없지만 누구나 아이디어를 줄 수 있습니까? 나는 이것을 약 1 시간 반 만에 고객에게 선물해야한다. 그래서 나는 정말로 여기에서 붙이게된다.

참고, 나는이

<result name="error" type="redirectAction">checkManager</result> 

에 오류를 변경 시도하고 나는 다시 내 데이터를 얻을 수 있지만, 내가 좋은 일이 아닌 내 오류 메시지가 느슨한. 어, 어떤 아이디어?

if (enteredHash.equals(storedHash)) { 
      _log.debug("The password matched"); 
      UserSession<User> userSession = (UserSession<User>) session 
        .get("user"); 
      #do logic# 
     } else { 
      _log.debug("The password didn't match"); 
      addActionError("The password you entered was incorrect, nothing was sent to the bank."); 
      return ActionSupport.ERROR; 
     } 
     return ActionSupport.SUCCESS; 

내 JSP는

<s:if test="hasActionErrors()"> 
      <div class="errors"> 
      <s:actionerror/> 
      </div><br> 
     </s:if> 

다시,이 한 달 전에 완벽하게 일했다. 내가 한 일은 손대지 않은 그 지점을 체크 아웃하고 배포하는 것이었다. 이제는 작동하지 않습니다.

+0

어떻게 그 데이터를 JSP에 제공하려고합니까? 액션 오류를 추가 하시겠습니까? 당신은 당신의 행동을위한 코드를 제공 할 수 있습니까? – rees

+0

그리고 당신은 당신의 JSP에서 이것을 가지고 있습니다 :''? – rees

+0

제가이 유형의 워크 플로에 따라 다른 JSP로 라우팅하면 원본 페이지 서블릿에 데이터를 가져와야할까요? 내 말은 여기 전체 검사 클래스'public class CheckAction extends ActionSupport { \t private collection checkList; \t public 컬렉션 getCheckList (\t \t return checkList; \t} \t public string execute() { \t \t checkList = Check.list(); \t \t return 성공; \t} } – scphantm

답변

1

빠른 수정은 CheckActiongetCheckList이를 추가 할 수 :

public Collection<Check> getCheckList() { 
    ActionContext.getContext().getSession().put("checkList", checkList); 
    return checkList; 
} 

SubmitFileAction이 추가 :

public Collection<Check> getCheckList() { 
    return (Collection<Check>) ActionContext.getContext().getSession().get("checkList"); 
} 

이 좋은 영구적 인 해결책은 아니지만 당신을 얻어야한다 당신은 위기에 처할 필요가 있습니다!

+0

아름답다. 효과가있었습니다. 나는 나중에 더 말할 수 있습니다. 정말 고마워요. 나는 아직도 그것이 한달 전에 어떻게 작용했는지 이해하지 못한다. 나는 정말로하지 않는다. 내가 문앞에서 걸어 다니는 고객을 갖지 않을 때 나는 약간의 수정을 전후로 점검하고, 뭔가 바보 같은 것을 놓치고 있는지 보게 될 것이다. 그러나 뜻 깊은 시간에, 대단히 감사합니다. 이것은 제 베이컨을 구했습니다. – scphantm

+0

기꺼이 도와 드릴 수 있습니다. 행운을 빈다. – rees

+0

훌륭했습니다. 이것은 단지 프로토 타입 응용 프로그램 이었지만 우리는이 개념으로 앞으로 나아갈 것입니다. 현재 생산 버전 기술 스택에서 일하고 있습니다. 고마워. – scphantm

관련 문제