Struts 2에서 열거 매개 변수를 어떻게 사용합니까?
문제
나는 입력 매개 변수로 열거를 사용하기 위해 Struts 2에서 조치를 취하려고 노력하고 있습니다. 지금까지 한 일은 다음과 같습니다.
public TestAction {
public enum Module {
VALUE1;
}
private Module module;
public void setModule(Module module) {
this.module = module;
}
public Module getModule() {
return module;
}
}
그러나 이것을 사용하려고 할 때 Xwork 변환 오류가 발생하고 작업 자체가 실행되지 않습니다. 이 작업을 그대로 만들 수 있습니까, 아니면 SetModule (String)을 직접 제공해야합니까?
편집 : Struts 2.1.6을 사용하고 있습니다.
해결책
그것은 끈을 열거적으로 바로 바인드해야합니다. 열거 형 변환기는 2.1.x라고 생각하기 때문에 기본 구성에 있다고 생각합니다.
- Struts 2의 어떤 버전을 사용하고 있습니까?
당신이 확실하지 않은 경우 다음이 내 것입니다 xwork-conversion.properties
2.0.14 앱에서
java.lang.Enum = com.opensymphony.xwork2.util.EnumTypeConverter
편집하다: 의견에 대한 응답으로, 열거를 할당하기 위해 사례를 무시 해야하는 경우 다음과 같은 선택이 있습니다.
- Enum의 가치를 actaully로 소문자로 변경하십시오 - 훌륭한 스타일이 아니라 코드를 조금 이상하게 보이게 할 수 있습니다.
- java.lang.enum에 대한 새로운 케이스 insensitive yfect converter를 작성하십시오 (Xwork One을 복사하고 입력을 Toupper로 복사하십시오).
- 이 특정 케이스에 새 SetModule (String) 추가
다른 팁
동작에서 리디렉션 조치로 전달할 때 비슷한 문제가 발생합니다 (조치 전진 대신) Struts는 매개 변수를 사용하고 있음을 제대로 인식하지 못합니다. List<Enum>
그리고 문자열 매개 변수에서 변환하기 위해 프록시 방법을 사용해야했습니다. List<Enum>
.
제휴하지 않습니다 StackOverflow