-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
Struts 2 7.0.x 부터는 Jakarta Servlet 6을 지원해서, 그것에 맞게 바꿔보자!
💡 저자님 커밋 메시지를 보면 Struts2 7.0 업그레이드라고 하진 않고,
Struts 7 Migration이라고 하시는데, 나도 그렇게 하는게 나을 것 같다.
브랜치를 만들어서 조금씩 바꿔보고 있는데, 특이사항도 좀 적어보자!
라이브러리 버전업
부모 POM을 거의 최신으로 바꿨다, 그다지 어려운 일은 아님...
JUnit 5 커스텀 플러그인 수정
Struts 2 7.x 버전 부터는 왠지 JUnit Jupiter를 지원해주지 않을까? 했는데... 여전히 Junit 4만 지원한다.
그래서 JUnit 5커스텀 플러그인 수정한 내용을 Struts 7.0.x버전에 맞게 수정을 하는데,
getActionProxy()와 getValueFromStack() 테스트가 실패를 했다.
@Test
void getValueFromStack() throws ServletException, UnsupportedEncodingException {
request.setParameter("name", "FD");
executeAction("/test/testAction.action");
String name = (String) findValueAfterExecute("name");
assertEquals("FD", name);
}request에 파라미터로 설정한 동일한 이름의 setter가 액션에 있으면 값전달이 제대로 되야하는데...
왜 안될까 했는데, JUnitTestAction의 수정사항을 보니...
@StrutsParameter
public void setName(String name) {
this.name = name;
}Setter에 @StrutsParameter어노테이션이 붙어있었다. 이것을 적용하고나니 잘되었다. 😂
- ✨ requset 파라미터 값으로 액션의 Setter를 호출해야할 때..
@StrutsParameter를 써줄 것.
하위 예제 수정
annotations
액션의 도메인 객체 필드에 파라미터를 설정하려면.. Getter에다 @StrutsParameter를 설정해줘야했다.
@StrutsParameter(depth = 1)
public Person getPersonBean() {
return personBean;
}Person 내부의 1단계 getter를 한번 호출하므로
depth가 기본값이 0이여서 1이상으로 바꿔줄 필요도 있었다.
저자님께서 하신거보면 그냥 쿨하게 10 지정하심..😅
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels