Struts2는 ModelDriven 대상 값을 사용하여 프론트 데스크톱에 비어 있습니까?
1481 단어 struts2nullmodelDriven
@Override
public User getModel() {
if(user == null){
user = new User();
}
return user;
}
그러나 우리는 사용자를 얻는 방법을 스스로 정했다.
public String getUserById(){
user = userService.getUserById(user.getUid());
if(user == null){
msg = " !";
return "fail";
}
System.out.println(user.getUname());
return "modify";
}
우리 페이지에 상대적인 대상 속성 값이 있으면 debug 탭을 통해 보십시오. 모두null입니까?왜 이래?
사실 이것은 Struts2가 사용하는 값 창고(Value Stack) 메커니즘과 관련이 있기 때문이다.
원인: getModel 이 방법은user 대상을 되돌려줍니다. 원래 검색한user 대상을 창고에 넣은 후에 압축합니다. 이렇게 하면 오래된 값이 덮어쓰이기 때문에user 대상은 새로운 new로 바뀌고 해당하는 속성은 반드시 비어 있습니다.
해결 방법:
struts.xml의 action에서 속성 수정:modelDriven.refreshModel Before Result, 결과를 되돌리기 전에 사용자를 삭제합니다.이렇게 해야만 우리가 원하는 결과를 얻을 수 있다.
<interceptor-ref name="defaultStack">
<param name="modelDriven.refreshModelBeforeResult">true</param>
</interceptor-ref>
참조:http://blog.csdn.net/li_tengfei/article/details/6098145
http://blog.csdn.net/zhang854429783/article/details/8221733
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
apache struts2 취약점 검증이번에는 보안 캠프의 과제였던 apache struts2의 취약성에 대해 실제로 손을 움직여 실행해 보고 싶습니다. 환경 VirtualBox에서 브리지 어댑터 사용 호스트:macOS 10.12 게스트:ubuntu 1...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.