Microsoft 社는 2022년 6월 15일 Internet Explorer 11의 지원을 종료했습니다.

Graha XML 정의파일 레퍼런스(@value)

제목
<querys>
<query funcType="list">
<commands>
<command>
<params>
<param>
@value

기본정보

분류attribute필수Y
이름@value

바인딩할 변수명을 기술한다.

Graha에서 사용되는 변수들은 다음과 같다.

1. 일반적인 변수

  • param. : request.getParameter
  • prop. : header / prop 요소에서 정의한 것
  • header. : request.getHeader
  • session. : session.getAttribute

2. header 접두사에 추가되는 변수

  • header.method : request.getMethod()
  • header.remote_user : request.getRemoteUser()
  • header.remote_addr : request.getRemoteAddr()
  • header.remote_host : request.getRemoteHost()
  • header.remote_user_roles : Apache Tomcat 에서 HTTP 인증을 한 경우 role 정보(String[])
  • header.scheme : request.getScheme()

3. header 요소에 sql 실행결과로부터 가져오는 code 요소를 정의한 경우

  • code.{code 요소의 name속성값}.firstValue : code 요소로 생성되는 첫 번째 값

4. 특수한 변수

  • att. : request.getAttribute (서블릿 필터 따위에서 setAttribute 로 설정한 경우에만 사용할 수 있다)
  • uploaded.file.path.{index} : 업로드한 파일 경로 (이건 insert 기능에서만, 그리고 processors / processor[@after = "true"] 만 사용 가능하다)
  • init-param. : request.getServletContext().getInitParameter

5. Graha 내부적으로 사용하는 특수한 변수

  • system.context.root.realpath : Context Root 의 서버상의 물리적 경로(request.getServletContext().getRealPath("/") 와 같다)
  • system.context.root.path : Context Root 의 서버상의 물리적 경로(request.getServletContext().getRealPath("/") 와 같다) (가급적 위의 것을 사용한다)
  • system.prefix : Context PATH + Graha 기본 디렉토리(web.xml 파일의 servlet-mapping 에서 url-pattern으로 기술된 경로)
  • system.suffix : 요청 URL 의 확장자
  • system.config.file.name : Graha XML 환경설정 파일 이름 (확장자 제외)
  • system.context.path : Context Path(request.getContextPath() 와 같다)
  • system.output : query 요소의 output 속성값 (rdf 혹은 xml)
  • system.htmltype : query 요소의 htmltype 속성값 (div 혹은 table)

예를 들어 요청 URL 이 /memo/graha/memo/list.xml 와 같은 경우 다음과 같다.

  • system.prefix : /memo/graha
  • system.suffix : .xml
  • system.config.file.name : memo (두번째 memo)

6. sql 실행결과로부터 만들어지는 변수 ("query.")

6.1. funcType 속성값이 "detail", "user", "report", "insert" 인 경우에 만들어 지는 것

  • query.{command 요소의 name 속성}.{컬럼이름}
  • query.{table 요소의 name 속성}.{컬럼이름}

command 혹은 table 요소의 name 속성이 생략된 경우 이 변수는 찾을 수 없다.

{컬럼이름} 뒤에 {일련번호} 가 붙어 있는 형태는 더이상 지원하지 않는다.

6.2. funcType 속성값이 "query" 인 경우

  • query.row.{command 요소의 name 속성}.count : PreparedStatement 내지 CallableStatement 의 getUpdateCount() 메소드의 결과값. command 요소의 name 속성이 있는 경우에만 처리한다.
  • query.row.total_affected_count : 위 값의 합계

6.3. funcType 속성값이 "list", "detail", "user", "report" 인 경우

  • query.row.{command 요소의 name 속성}.count : 데이타베이스에서 가져온 row의 갯수. command 요소의 name 속성이 있는 경우에만 처리한다.
  • query.row.total_fetch_count : 위 값의 합계
  • query.total.count : "list" 에서 전체 게시물 갯수

6.4. funcType 속성값이 "delete" 인 경우

  • query.row.{command 요소의 name 속성}.count : PreparedStatement 내지 CallableStatement 의 getUpdateCount() 메소드의 결과값. command 요소의 name 속성이 있는 경우에만 처리한다.
  • query.row.total_delete_count : 위 값의 합계

6.5. funcType 속성값이 "insert" 인 경우

6.5.1. GET 요청인 경우
  • query.row.{command 요소의 name 속성}.count : 데이타베이스에서 가져온 row의 갯수. command 요소의 name 속성이 있는 경우에만 처리한다.
  • query.row.total_fetch_count : 위 값의 합계
6.5.2. POST 요청인 경우
  • query.row.{command 요소의 name 속성}.count : PreparedStatement 내지 CallableStatement 의 getUpdateCount() 메소드의 결과값. table 요소가 여러 개 + command 요소의 name 속성이 있는 경우에만 처리한다.
  • query.row.count : PreparedStatement 내지 CallableStatement 의 getUpdateCount() 메소드의 결과값. table 요소가 1개 + command 요소의 name 속성이 있는 경우에만 처리한다.
  • query.row.total_update_count : 위 값들의 합계

7. processor 에서 만들어진 변수(result.)

processor 에서 지정한 class 속성값의 Java Class 에서 설정한 변수로서 다음과 같이 설정할 수 있다.

params.put("result.{변수}", "{값}")

만약 여기서 지정한 값이 null 이고 기본값(default 속성) 이 지정된 경우 sql 실행 과정에서 기본값을 변경된다는 것을 주의한다.

8. <validation> 에서 만들어지는 변수

  • error.error : <validation><param> 을 통과하지 못하면, msg 속성값을 담고, 에러 화면으로 이동한다.

error.error 는 processor 에서 명시적으로 담을 수 있지만, funcType 속성값이 "query", "report" 에서만, 에러 화면으로 이동시킨다.

참조링크 1
참조링크 2
참조링크 3
Synonym
최종수정일2024-05-27

속성

이름Synonym필수최종수정일

하위 요소

이름Synonym필수최종수정일