URL에 전달 된 매개 변수에 문제가 있습니다. /struts/MyAction.action?param=foo%40bar.comStruts 2.0.14 GET 매개 변수가 URL 디코딩되지 않았습니까? 버그입니까?
액션 필드가 설정 한 "PARAM"필드를 얻을에 "푸 % 40bar.com" 가 있다는 것입니다 :
하자 요청이 말한다 버그 또는 Struts에서 너무 많은 것을 기대하고 있습니까?
내 직감은 "[email protected]"값을 가져야한다고 말합니다. 예를 들어 해당 매개 변수를 POST 양식 필드로 전달하면 일어날 수 있습니다.
기본 인터셉터 스택을 사용하고 Action 클래스는 ActionSupport를 확장합니다. WebSphere6.1에서 일부 동작이 발생합니다. & GlassFish2.1.
감사
안녕 다시
,문제는 프록시 구현 버그로 인해 발생했다. 우리는 웹 응용 프로그램 앞에 서있는 사용자 지정 프록시 서버를 작성했습니다. 두 번째로 URL 매개 변수를 인코딩했기 때문에 Struts에서 @ 대신 % 40을 사용했습니다. 버그가 수정되었으며 매개 변수가 올바르게 전달됩니다. 내가 Struts2이 매개 변수를 디코딩에 대한 책임을 생각하지 않고, 서블릿 컨테이너가 들어있다
공개 입력란이 아닌 getter 및 setter를 사용해야합니다. 이는 Java의 일반적인 모범 사례입니다. –
struts를 사용하면 유효성 검사 메서드에서 유효성 검사를 수행해야하는데 getter 및 setter는 get/set보다 아무것도 수행하지 않아야하며 매개 변수 제약도 다른 곳에서 처리됩니다 ... 동작의 클래스가 얇기 때문에 훨씬 많은 단열재가 필요하지 않습니다. (그리고 정말 쉽게 IDE 리팩터링과). 일반적으로 좋은 생각이지만, 액션을 취하는 방식은 이점을 꽤 추상적으로 보이지만 추가하지 않으면 가독성이 향상됩니다. OT 그냥, 하이버 네이트 심지어 이국적인에 대한 이야기 바이트 필드 재 작성을 통해 개인 필드의 설정을 허용 할 수 있습니다! 나는 get/set이 '모범 사례'라고 동의하지만 항상 최선은 아닙니다. – Quaternion
안녕하세요, 그것은 실제로 양식이 아니라 생성 된 이메일의 작업에 대한 링크입니다. 클래스 패스는 괜찮은 것 같고 로그에서 걱정할만한 결과를 얻지 못합니다. 나는 Struts 2.2.1을 시험해보고 어떤 것이 바뀌는지를 보게 될 것입니다. –