ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스트럿츠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 라고 바꾼다.

    <!--위의 contanturl에 붙이는 ~~.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
Designed by Tistory.