본문 바로가기

개발/기타

[XPlatForm] 실습 교육 정리 - 3. xplatform - jsp 연동. sample jsp 이용

1. jsp를 이용해서 xplatform dataset에 바인딩해줄려면 xapi.jar 파일과 lisense.xml이 필요하다. 

license는   http://xplatform.co.kr 에서 로그인 후 개발자 라이센스를 받으면 된다. (사용기간 2개월)

apache tomcat - lib폴더에 xapi.jar파일과 라이센스파일 넣어줌.

- 위 사진처럼 톰캣-lib폴더에 jar파일을 넣었다면 아래 jsp소스를 보자.(풀 소스)

2. db연결을 위한 jsp 코딩

<%@ page import="org.apache.commons.logging.*" %>

<%@ page import="com.tobesoft.xplatform.data.*" %>
<%@ page import="com.tobesoft.xplatform.tx.*" %>

<%@ page import = "java.util.*" %>
<%@ page import = "java.sql.*" %>
<%@ page import = "java.io.*" %>
<%@ page contentType="text/xml; charset=UTF-8" %>

<%
// PlatformData 
PlatformData o_xpData = new PlatformData();
int nErrorCode = 0;
String strErrorMsg = "START";


try {	
	/******* JDBC Connection *******/
	Connection conn = null;
	Statement  stmt = null;
	ResultSet  rs   = null;
	
	try { 
		//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		//conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=EDU;User=edu;Password=edu123");
		
		Class.forName("oracle.jdbc.driver.OracleDriver");
    	conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "test", "test");
    
		stmt = conn.createStatement();
	  
		/******* SQL ************/
		String SQL="select * from tb_table"; 
	
		rs = stmt.executeQuery(SQL);
	  
		/********* Dataset **********/
		
		DataSet ds = new DataSet("Dataset00");
	  
	  ds.addColumn("id"   ,DataTypes.STRING  ,(short)100   );
	  ds.addColumn("name" ,DataTypes.STRING  ,(short)500  );
	  ds.addColumn("data" ,DataTypes.STRING  ,(short)300   );
	
	  	  
	  while(rs.next())
	  {
	  	int row = ds.newRow();

	  	ds.set(row ,"id"    ,rs.getString("id")   );
	  	ds.set(row ,"name"  ,rs.getString("name") );
	  	ds.set(row ,"data"  ,rs.getString("data") );
	  
	  }
	  	
		// DataSet-->PlatformData
		o_xpData.addDataSet(ds);
	 
		nErrorCode = 0;
		strErrorMsg = "SUCC";
		
	} catch (SQLException e) {
		
		nErrorCode = -1;
		strErrorMsg = e.getMessage();
		
	}	
	
	/******** JDBC Close ********/
	if ( stmt != null ) try { stmt.close(); } catch (Exception e) {nErrorCode = -1; strErrorMsg = e.getMessage();}
	if ( conn != null ) try { conn.close(); } catch (Exception e) {nErrorCode = -1; strErrorMsg = e.getMessage();}
			
} catch (Throwable th) {
	nErrorCode = -1;
	strErrorMsg = th.getMessage();
	
}

// VariableList 
VariableList varList = o_xpData.getVariableList();
		

		
//Variable--> VariableList
varList.add("ErrorCode", nErrorCode);
varList.add("ErrorMsg", strErrorMsg);

// HttpPlatformResponse 
HttpPlatformResponse pRes = new HttpPlatformResponse(response, PlatformType.CONTENT_TYPE_XML, "UTF-8");
pRes.setData(o_xpData);

// Send data
pRes.sendData();
%>

- 풀 소스에서 고칠 부분만 본다면 (수정해야할 부분 주석처리)

Class.forName("oracle.jdbc.driver.OracleDriver");
    	conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "test", "test"); //개발자 환경에 맞는 db환경 설정
    
		stmt = conn.createStatement();
	  
		/******* SQL ************/
		String SQL="select * from tb_table";  // 사용할 테이블 
		
		rs = stmt.executeQuery(SQL);
	  
		/********* Dataset **********/
		
		DataSet ds = new DataSet("Dataset00"); // xplatform에서 테이블 데이터를 담을 dataset 지정
	  
	  ds.addColumn("id"   ,DataTypes.STRING  ,(short)100   );    // addCulumn(String,dataType,dataSize) string value는 여기서 만든걸 xplatform dataset column명을 같게 해주거나 xplatform에서 만든걸 똑같이 넣어주면 된다. 즉, 일치하게만 해주면 됨.
	  ds.addColumn("name" ,DataTypes.STRING  ,(short)500  );
	  ds.addColumn("data" ,DataTypes.STRING  ,(short)300   );
	
	  	  
	  while(rs.next())
	  {
	  	int row = ds.newRow();

	  	ds.set(row ,"id"    ,rs.getString("id")   );                 //set(rowIndex,columnName,value) columnName은 위에서 적은 dataset column을 적어주고, value는 dataset에 바인딩할 실 table column명을 적어주면 된다.
	  	ds.set(row ,"name"  ,rs.getString("name") );
	  	ds.set(row ,"data"  ,rs.getString("data") );
	  
	  }



3. xplatform - jsp 연동

3-1 먼저 jsp를 tomcat\webapps\ROOT\ 에 넣거나, 이클립스 프로젝트를 생성하여 파일을 추가한다. 

3-2 서버나 로컬에서 서버 작동.

3-3 xplatform TypeDefinition에서 root path 지정


-TypeDefinition 더블 클릭



- add를 누르면 add service group이라는 창이 뜬다. service type은 jsp로 해두고 id나 url 사용자 환경에 맞게 설정.


3-4 grid row1 : col0~colX까지 dataset 바인딩


* 바인딩 하기 위해선 dataset을 생성해야 하고 column들을 생성해줘야 한다. 

3-5 버튼 컴포넌트를 생성하고 script 작성.

버튼을 만들고 더블클릭하면 script 함수가 자동 생성된다. default로 clickevent로 호출됨. 

*참고로 이벤트 종류는 많으며 따로 properties창 event info 탭에서 선택 가능.


function Button00_onclick(obj:Button,  e:ClickEventInfo)
{
	
	Dataset00.url = "DataUrl::test.jsp"; // http://localhost:8080/xp/test.jsp 
	Dataset00.load();
}

위와 같이 넣고 save all 


4. 실행

- 돋보기에 번개모양의 아이콘을 클릭하여 화면을 띄어본다.



- 실행 확인

끝.


다음엔 eGovFrame 이용해서....

'개발 > 기타' 카테고리의 다른 글

[python] notepad++에서 python 실행시키기  (0) 2014.01.09
[python] django 설치  (0) 2014.01.08
SyntaxHighlighter  (0) 2013.07.02
[JQuery] jquery api  (0) 2013.06.20
[XPlatForm] 실습 교육 정리 - 2. Grid 생성 및 Dataset 설정  (0) 2013.06.16