-
스트럿츠2 동작원리웹개발 공부/struts 2017. 4. 3. 18:20
스트럿츠2 동작원리 이다.
웹페이지에서 액션 요청 (HelloWorld.action)
-> 액션 name="HelloWorld" 인 것을 찾음
-> name="HelloWorld" 이 있는 파일에서 result name="success"></result 의 사이( > </) 에 있는 파일명 jsp (예. helloworld.jsp) 에 리절트 코드를 표출해줌
--> 리절트 코드는 result name="success" 와 return 반환값 을 찾아서 그 코드값을 불러와서 jsp에 표출
2017. 04. 04. 화 추가내용
강사님의 1:1 도움으로 배운것은
프로젝트 실행시 가장 먼저 실행되는것은 WEB-INF 폴더에 web.xml 이며
여기에 웰컴파일 이라는 태그로 지정되어있는 파일은 url 에 파일명이 없어도 자동으로 읽어와 실행한다고 한다.
만약 404 에러가 뜨면 여기를 한번 참고해 보자.
스트러츠2 의 구동 방식에 대해서 배웠다
스트러츠2 의 구동방식은
struts 를 쓰기위해 라이브러리 가 필요하고
만약 struts.xml 스트러츠 파일을 생성해 작성할 땐
(src 우클릭후 other 에서 xml 을 검색해 파일을 생성하자 file Name 에다가 struts 입력후 피니시)
<?xml version="1.0" encoding="UTF-8" ?> ----------------------------------------기본설정
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">-------------------------라이브러리에 struts-2.3.dtd 에서 퍼옴.
<struts>
<constant name="struts.action.extension" value="kmj"/>---------url 에 .action 이라고 하는것을 .kmj 라고 바꾼다.
<!--위의 contant 는 url에 붙이는 ~~.action 을 ~~.kmj 로 바꿔주는 것 이다.-->
<!-- <constant name="struts.multipart.saveDir" value="E:/Project/workspase/Exam0331/WebContent/files/"/> -->
<constant name="struts.multipart.maxSize" value="10485760"/>
<package name="default" namespace="/" extends="struts-default, json-default">
---------namespace="/"는 절대경로인 "WEB-INF/~" 를 "/~" 로 만든다는 의미이다.
---------struts 에서 자주 사용하는 인터셉터들을 사용할때마다 선언하지 않게끔 extends를 통해 상속(extends) 받는다.
<action name="index">---------여기서 name 은 url 이고 실제 사용할 때 (http://localhost:8090/Exam0331/index.kmj) 처럼 쓴다.
--------- 여기서 아래 주석처리된 것과 다르게 클래스나 메소드를 안쓰는 이유는 단순히 result에 있는 경로의 파일을 실행하기만 하기 때문.
<result>/WEB-INF/jsp/index.jsp</result>---------위 경로로 이동되면 사용할 파일경로 이다
</action>
<!-- <action name="test4" class="com.java.TestAction" method="execute5"> -->
---------class=""는 클래스파일의 위치를 말하며 method=""는 해당 파일중 이 메소드명과 일치하는 메소드를 읽겠다는 의미이다.
<!-- <result>/WEB-INF/jsp/test.jsp</result> -->
<!-- </action> -->
<action name="view">
<result name="success">/WEB-INF/jsp/test2.jsp</result>
---------여기서 name은 쓸필요없고 이유는 단지 test2.jsp를 불러서 화면을 보여주려고 하는 것이기 때문이다.
</action>
<action name="*!*" class="com.java.{1}" method="{2}">
---------*!* 는 {1}!{2} 를 의미하면서도 url이다. 또한 1은 클래스명, 2는 메소드명 이다.
<result name="success" type="json"/>
---------success는 선택된 {2} 메소드의 return 값을 받기위해 있는 것이다.
</action>
<action name="json" class="com.java.JsonAction">
---------class="" 는 해당 클래스를 읽는것이다. name은 위에서 언급한 url이다.
<result type="json"/>
---------type="json"은 불러온 클래스의 return 을 json 타입으로 받겠다는 의미이다.
</action>
</package>
<include file="struts2.xml"/>
---------struts2.xml 을 그대로 퍼와서 포함시키겠다는 의미이다.
</struts>
'웹개발 공부 > struts' 카테고리의 다른 글
login 화면 설명 (0) 2017.04.11 <include> 에 대해서 알아보자! (0) 2017.04.09