넥사크로에서 페이지를 이동하는 개념은 두가지가 있습니다.
1. 넥사크로 페이지에서 스프링의 VIEW 페이지(JSP) 이동
==> 스크립트에서 location.href = "springView.do"; 를 사용
2. 넥사크로 페이지 --> 넥사크로 페이지
==> 스크립트에서 this.go("Base::HelloWorld2.xfdl"); 으로 폼을 이동
아래는 버튼 클릭시 페이지를 이동하는 예제 입니다.
[전자정부 프레임워크]
1. 전체 디렉토리 구조
컨트롤러 : src - main - java - com - study - controller
jsp 파일 : src - webapp - WEB-INF -jsp
servlet 설정파일 - src -webapp - WEB-INF - config - context-servlet.xml
2. Controller0.java
springView.do 요청이 왔을 때 springView.jsp 페이지를 보여주라는 맵핑 정보가 있음
package com.study.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class Controller0{
// springView 페이지
@RequestMapping("/springView.do")
public String springView(HttpServletRequest request, Model model) throws Exception {
return "springView";
}
}
3. springView.jsp
<%@ page language='java' contentType='text/html; charset=UTF-8' pageEncoding='UTF-8'%>
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core'%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>springView</title>
</head>
<body>
springView 페이지
</body>
</html>
4. context-servlet.xml
스프링 설정 파일으로 jsp파일의 경로 설정
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
">
<context:component-scan base-package="com.study" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
</beans>
5. web.xml
스프링과 웹서비스 설정파일
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>k_lm</display-name>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
<url-pattern>*.ajax</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:context*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/context-*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>*.do</url-pattern>
<url-pattern>*.ajax</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
[넥사크로]
1. HelloWorld 폼 구성
helloWorld.xfdl 스크립트에서 각 버튼 클릭시 화면이동 이벤트 처리한다.
this.Button00_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
location.href = "springView.do";
}
this.Button01_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
this.go("Base::HelloWorld2.xfdl");
};
2. HelloWorld2 폼 구성
개념 정리
- 넥사크로는 페이지 하나에서만 동작하는 개념이다.
- 넥사크로는 클라이언트 언어(javascript, html)로만 동작하는 개념이다.
- 넥사크로에서 서버 언어(JSP)는 사용이 불가능하다.
- 넥사크로 페이지를 스프링의 View로 만들 수 없다.
- 스프링의 View는 WEB-INF 하위에 있어 Controller를 통해 호출이 되고, 넥사크로 페이지는 webapp 하위에 있어 직접 접근한다.
'개발 - 넥사크로 강좌' 카테고리의 다른 글
넥사크로 강좌[4] 로그인 (1) | 2019.07.06 |
---|---|
넥사크로 강좌[3] transaction (0) | 2019.07.03 |
넥사크로 강좌[1] Hello World (0) | 2019.06.26 |
넥사크로 강좌[0] Intro (0) | 2019.06.26 |