Struts 2 - result 설정 의 다양한 보기 퍼 가기 형식

Strust 2 의 몇 가지 보기 전송 유형:
1. dispatcher: 서버 쪽 에서 페이지 로 이동 합 니 다. 보통 JSP, 기본 형식 을 처리 합 니 다.
 
2. redirect: 클 라 이언 트 (브 라 우 저) 가 페이지 로 다시 설정 합 니 다. 다음 예 를 들 어 redirect 보기 리 트 윗 을 설명 합 니 다. 주의해 야 할 것 은 브 라 우 저가 방향 을 바 꾸 기 때문에 웹 콘 텐 츠 아래 에 리 트 윗 페이지 를 두 어야 합 니 다. 그렇지 않 으 면 접근 할 수 없습니다.
다음은 struts. xml 프로필 입 니 다:
<package name="struts" namespace="/test" extends="struts-default">
	<action name="redirect" class="com.struts.action.RedirectAction" method="execute">
		<result name="success" type="redirect">/redirect.jsp?message=${message }</result>
	</action>
</package>

 다음은 RedirectAction:
package com.struts.action;

public class RedirectAction {
	private String message;

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public String execute() {
		this.message = "This is a redirect test";
		return "success";
	}
}

 
다음은 방향 을 바 꿔 야 할 redirect. jsp:
 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>redirect    </title>
</head>
<body>
	message : ${param.message }
</body>
</html>

 서버 에 항목 배치, 주소 표시 줄 에 입력 http://localhost:8080/strutsdemo/test/redirect
 redirect. jsp 메시지 표시: 이것 은 redirect test
브 라 우 저 주소 표시 줄 변화 결과: http://localhost:8080/strutsdemo/redirect.jsp?message=This%20is%20a%20redirect%20test
 
주: el 표현 식 으로 action 의 속성 값 을 가 져 올 수 있 습 니 다.
 
3. redirectAction: 서버 에서 지정 한 action 으로 이동 합 니 다. 다음 예 를 들 어 redirectAction 보기 의 퍼 가기 에 대해 설명 합 니 다.
다음은 struts. xml 프로필 입 니 다:
<package name="struts" namespace="/test" extends="struts-default">
	<action name="testAction" class="com.struts.action.RedirectActionAction" method="execute">
		<result name="success" type="dispatcher">/WEB-INF/pages/redirectAction.jsp?message=${message }</result>
	</action>
		
	<action name="redirectAction">
		<result name="success" type="redirectAction">testAction</result>
	</action>
</package>

 
다음은 Redirect Action Action:
package com.struts.action;

public class RedirectActionAction {
	private String message;

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public String execute() {
		this.message = "This is a redirectAction test";
		return "success";
	}
}

 
다음은 방향 을 바 꿔 야 할 redirectAction. jsp 입 니 다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>redirectAction    </title>
</head>
<body>
	message : ${param.message }
</body>
</html>

 서버 에 프로젝트 배치, 주소 표시 줄 에 입력 http://localhost:8080/strutsdemo/test/redirect Action
redirect. jsp 디 스 플레이 메시지: This is a redirect 액 션 테스트
브 라 우 저 주소 표시 줄 변화 결과: http://localhost:8080/strutsdemo/test/testAction.action
 
이상 은 같은 네 임 스페이스 에 있 는 action 으로 재 설정 한 경우 입 니 다. 다른 네 임 스페이스 에 있 는 action 으로 재 설정 하려 면 Struts. xml 의 설정 은 다음 과 같 습 니 다.
 
<struts>
	<package name="struts" namespace="/test" extends="struts-default">
		<action name="testAction" class="com.struts.action.RedirectActionAction" method="execute">
			<result name="success" type="dispatcher">/WEB-INF/pages/redirectAction.jsp?message=${message }</result>
		</action>
	</package>
	
	<package name="other" namespace="/test2" extends="struts-default">
		<action name="redirectAction">
			<result name="success" type="redirectAction">
				<param name="namespace">/test</param>
				<param name="actionName">testAction</param>
			</result>
		</action>
	</package>
</struts>

 
 인 스 턴 스 절 차 를 참고 하여 테스트 결 과 는 같 습 니 다. 
 
4. plainText: 원본 파일 내용 표시
 프로필:
<action name="plainText" class="com.struts.action.PlainTextAction" method="execute">
	<result name="success" type="plainText">/WEB-INF/pages/plainText.jsp</result>
</action>

 다음은 PlainTextAction:
package com.struts.action;

public class PlainTextAction {
	public String execute() {
		return "success";
	}
}

 
 다음은 plainText. jsp:
 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>plainText    </title>
</head>
<body>
	<%= new Date(); %>
</body>
</html>

 테스트 결과: 예 를 들 어 plainText. jsp
 
 중국어 난 코드 문 제 를 해결 하려 면 action 은 다음 과 같 습 니 다.
<action name="plainText">
	<result type="plainText">
		<param name="location">/WEB-INF/pages/plainText.jsp</param>
		<param name="charSet">UTF-8</param> 
	</result>
</action>

  5. 공용 보기 설정:
프로필:
<struts>
	<package name="global" namespace="/global" extends="struts-default">
		<global-results>
			<result name="success">/WEB-INF/pages/global.jsp</result>
		</global-results>
	</package>
	
	<package name="struts" namespace="/test" extends="global">
		<action name="globalResultAction" class="com.struts.action.GlobalResultAction" method="execute">
			<param name="namespace">/global</param>
		</action>
	</package>
</struts>

설정 을 통 해 알 수 있 듯 이 설정 파일 의 package 도 우리 자바 의 가방 처럼 계승 할 수 있 습 니 다.
 
 GlobalResultAction:
package com.struts.action;

public class GlobalResultAction {
	private String message;

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public String execute() {
		this.message = "This is a globalResult test";
		return "success";
	}
}

 global.jsp:
 
 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>globalResult  </title>
</head>
<body>
	message : ${message }
</body>
</html>

 
브 라 우 저 주소 표시 줄 에 입력: http://localhost:8080/strutsdemo/test/globalResultAction 페이지 표시: message: This is a global Result test

좋은 웹페이지 즐겨찾기