2012-07-19 2 views
0

Struts2를 사용하고 있습니다. 동일한 코드를 가진 두 개의 웹 양식이 있습니다. 하나의 양식을 삭제하고 싶습니다. 다음은 Struts 프로젝트의 구조입니다.Struts2 하나의 클래스에서 둘 이상의 액션

\Web Pages 
    form.jsp 
    \WEB-INF 
    \Content 
     error.jsp 
     form.jsp 
     success.jsp 
\Source Packages 
    \action 
    MyAction.java 

내가 MyAction.java에 새로운 액션 메소드를 추가하여 \ 웹 페이지에서 form.jsp 제거하기 위해 노력

package action; 

import com.opensymphony.xwork2.ActionSupport; 
import org.apache.struts2.convention.annotation.*; 

public class MyAction extends ActionSupport { 

    @Action(value = "foo", results = { 
    @Result(name = "input", location = "form.jsp"), 
    @Result(name = "success", location = "success.jsp"), 
    @Result(name = "error", location = "error.jsp") 
    }) 
    public String execute() throws Exception { 
    if (user.length() == 1) { 
     return "success"; 
    } else { 
     return "error"; 
    } 
    } 


    private String user = ""; 

    public void validate() { 
    if (user.length() == 0) { 
     addFieldError("user", getText("user required")); 
    } 
    } 

    public String getUser() { 
    return user; 
    } 

    public void setUser(String user) { 
    this.user = user; 
    } 
} 

MyAction.java.

@Action(value="bar", results = { 
    @Result(name = "success", location = "form.jsp"), 
    }) 
    public String another() { 
    return "success"; 
    } 

하지만 HTTP에 갈 때 나는 다음과 같은 오류가 발생했습니다 : // localhost를 .../bar.action

HTTP 상태 404 - 액션 action.MyAction과 정의 된 결과를 입력

결과

답변

0

MyAction은 유효성 검사를 의미하는 validate() 구현이 있습니다.

무슨 일이 일어나고있는 것은 다른 것을 호출하고 있지만 유효성 검사()가 시작되고 있습니다 (인터셉터 스택에 있음). 유효성 검사가 실패하여 다른 입력란에 정의되지 않은 INPUT 결과로 보냅니다. 당신이 기본 입력 결과 을 원하는 경우) (다른에 INPUT 결과를 추가하기가

  • 검증을하지 않으려면

    당신은

    1. 은 다른 방법에 @SkipValidation을 추가한다

      좀 더 일반적으로, 그런 종류의 에러 (액션 X와 결과 입력에 대해 결과가 정의되지 않음)를 얻으면 보통 유효성 검사 오류, 매개 변수 채우기 오류 (예 : 준비 중 예외) 중 하나를 의미합니다.

  • 관련 문제