5. 동적 결과 집합, 파라미터 결과 집합 (나의struts2 노트)

4929 단어
주요 내용:
  • 1.동적 결과 세트(파악)
  • 2.매개변수 결과 세트
  • 1. 동적 결과 집합
    이 내용은 많이 쓰지 않으니 이해하기만 하면 된다.관련 코드: (엔지니어링Struts2_1700_DynamicResultstruts.xml
    
    
    
        
        
        
          
            
                ${target}.jsp
            
        
        
    
    
    UserAction
    package com.bjsxt.struts2.user.action;
    import com.opensymphony.xwork2.ActionSupport;
    public class UserAction extends ActionSupport {
        
        private int type;
        private String target;
        
        @Override
        public String execute() throws Exception {
            
            if(type == 1){
                target = "/user_success";
            }else if(type == 2){
                target = "/user_error";
            }
            return "success";
        }
    
        public int getType() {
            return type;
        }
        public void setType(int type) {
            this.type = type;
        }
    
        public String getTarget() {
            return target;
        }
    
        public void setTarget(String target) {
            this.target = target;
        }   
    }
    
    index.jsp
    
    
    
    
      
        My JSP 'index.jsp' starting page
        
        
            
      
      
      
            (               getter setter  )
        
    1. success로 돌아가기
    2. error 반환
    user_success.jsp
    
        User Success
        
        
      
    
    user_error.jsp
    
        User Error
      
    

    설명: 액션에 대한 속성 값은 일반적으로valuestack에 존재한다는 것을 알고 있기 때문에 결과도 하나의 속성으로valuestack에 저장할 수 있습니다.문제는 원래 Result를 이렇게 설정해야 한다는 것입니다.
    ${target}
    

    그리고 액션에서 target의 값은 jsp 페이지의 전체 이름이어야 하는데 제가 이렇게 설정한 후에 오류가 발생한 것을 발견했습니다. 그래서 인터넷에서 검색해 봤는데 위의 이 설정이 문제를 해결할 수 있다는 것을 발견했습니다. 무슨 문제인지 잘 모르겠습니다.
    2. 파라미터가 있는 결과 집합
    우리는 브라우저가 한 번 요청할 때 서버에서 파라미터를 공유하는 것을 알고 있다. 예를 들어 forward 점프 등이다. 그러나 Redirect 점프에 있어 파라미터는 공유된 것이 아니다. 왜냐하면 브라우저가 서버에 여러 번 요청을 했기 때문이다.그래서 우리는 점프할 때 때때로 관련 매개 변수를 가지고 있어야 한다.
    관련 코드: (엔지니어링Struts2_1800_ResultWithParamsstruts.xml
    
    
    
        
        
        
          
            
                /user_success.jsp?target=${type}
            
        
        
    
    
    index.jsp
    
    
    
      
        My JSP 'index.jsp' starting page
        
        
            
      
      
      
               
        
    1. 전달 매개 변수
    UserAction.java
    package com.bjsxt.struts2.user.action;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class UserAction extends ActionSupport {
        
        private int type;
        
        
        @Override
        public String execute() throws Exception {
            return "success";
        }
    
        public int getType() {
            return type;
        }
        public void setType(int type) {
            this.type = type;
        }
    
    }
    
    user_success.jsp
    
    
    
    
      
        User Success 
      
      
      
        User Success
    from value stack :
    from action context:

    설명:
  • 1.내가 이렇게 설정했을 때/user_success.jsp?target=${type} 오류가 발생했습니다. 마지막으로 My Eclipse 설정을 통해 해결했습니다. Window->prefrences->MyEclipse->Validation->Struts2 Validator-> build 에서 다시 시작하면 됩니다.그러나 이런 방식은 이전 예의 문제를 해결하지 못했다.
  • 2.를 사용하면 값을 얻을 수 없습니다. 이것은 target이 원래 액션의 매개 변수가 아니지만, 액션 context에서 이 값을 얻을 수 있기 때문입니다.

  • 마지막으로:result의 설정은 기본적으로 끝났습니다.

    좋은 웹페이지 즐겨찾기