struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 파일 포함시키기
struts-default.xml은 자동으로 포함됩니다-->
<include file="struts_study.xml"></include>
<!-- tutorial이라는 패키지명을 default로 셋팅
www / index.html / tutorial 이 모두 default -->
<package name="tutorial" extends="struts-default">
<!-- 요청할때 http://localhost:8080/s1.Hello/HelloWorld.action
ip / port /프로젝트명/패키지명/액션네임.action
http://localhost:8080/s1.Hello/tutorial/HelloWorld.action
-->
<!-- HelloWorld.action 이라는 요청이 오면
tutorial.HelloWorld클래스 실행하고
return이 success 라면 root/helloWorld.jsp를 사용자에게 보여준다
-->
<!-- class="..안의 execute()를 실행해라 "
execute()메서드를 실행하기 위해서는 객체를 생성해야만 하는데
그 객체생성작업을 struts가 합니다.
1. new HelloWorld().execute();
2. String message = "Hello, World~~~~~~~! <hr/> hi";
3. => success 리턴
4. 결과가(즉 리턴이) "success"라면
5. helloWorld.jsp를 보여줘
-->
<action name="HelloWorld" class="tutorial.HelloWorld"
method="myTest">
<result name="success">/helloWorld.jsp</result>
</action>
<!-- jsp의 mvc모델에서는 컨트롤러 역활을 java 클래스가 하는데에 비해
struts2 에서는 컨트롤러 역활을 struts.xml 이 합니다.
구조는 동일
-->
</package>
<!-- 기본 페이지를 설정할 때 package를 따로 잡자 -->
<package name="def" extends="struts-default">
<!-- default-action-ref 기본 페이지를 ~ 무엇으로 하겠다 -->
<default-action-ref name="DefaultAction" />
<!-- 기본 페이지 요청이 왔을 때 실행할 class와 보여줄 page -->
<action name="DefaultAction" class="tutorial.DefaultAction">
<result>/DefaultAction.jsp</result>
</action>
</package>
</struts>
HelloWorld.java
package tutorial;
public class HelloWorld {
private String message;
private String msg;
public String getMessage() {
return message;
}
// jsp에서 ${msg}라는 명령을 실행하면
// out.print(this.getMsg());가 실행된다
public String getMsg() {
return msg;
}
//java- main ,
//android - onCreate... ,
//jsp:init ,
//struts:execute..
//자동 호출..
public String execute() throws Exception {
this.message = "Hello, World~~~~~~~! <hr/> hi";
// request.setAttribute("message", "밸류~~"); 작업이 발생합니다
/* Item item=DBHelper.select(3);*/
return "success";
}
public String myTest(){
msg="struts.xml의 action태그의 excute메서드 테스트";
return "success";
}
}
helloWorld.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>Insert title here</title>
</head>
<body>
<h1>
request영역이나/ session영역 / application 영역 / page 영역
에 .. 즉 전에 request.setAttribute("message", "안녕~~~");
<br/>
그런 작업을 누군가가 해주었다.. 그 누군가는 struts.. <br/>
message : ${message} <br />
윗줄의 의미는 <%=객체.getMessage()%> <br />
msg : ${msg} <br/>
</h1>
</body>
</html>
DefaultAction.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>Insert title here</title>
</head>
<body>
DefaultAction page <br />
기본 페이지 ${message}
</body>
</html>
DefaultAction.java
package tutorial;
public class DefaultAction {
String message;
public String getMessage() {
return message;
}
public String execute(){
message= "defaultAction에서 세팅";
return "success";
}
}