반응형

이번 포스팅은 파일 생성 시 발생한 오류에 대하여 알아보도록 하겠습니다.



<Error>



  Invalid file name: must contain only [a-z0-9_.] 오류

 



<Solution>



  파일명 영어소문자 나 0~9까지의 숫자만 허용하는데 그 이외의 문자가 들어간 경우이므로 허용하는 문자를 제외하고 파일명을 수정



반응형
반응형

InformationInput .java

 

package com.androidhuman.IntentTest;

 

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class InformationInput extends Activity {

 

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

final Button requestInfo = (Button)findViewById(R.id.requestInfo);

 

// 버튼을 클릭할 경우

requestInfo.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){

Intent intent = new Intent(InformationInput.this,InformationProc.class);

 

// Sub_Activity 호출

startActivityForResult(intent, 1); 

}

});

}

 

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data){

super.onActivityResult(requestCode, resultCode, data);

TextView name_view = (TextView)findViewById(R.id.name_view);

TextView digit_view = (TextView)findViewById(R.id.digit_view);

 

// 액티비티가 정상적으로 종료되었을 경우

if(resultCode==RESULT_OK) {

// InformationInput에서 호출한 경우에만 처리합니다.

if(requestCode==1) {

// 받아온 이름과 전화번호를 InformationInput 액티비티에 표시name_view.setText(data.getStringExtra("data_name"));

digit_view.setText(data.getStringExtra("data_digit"));

}

}

}

}

 

InformationProc .java

 

package com.androidhuman.IntentTest;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

public class InformationProc extends Activity {

 

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.informationproc);

Button input_info = (Button)findViewById(R.id.inputinfo);

input_info.setOnClickListener(new OnClickListener(){

 

//버튼을 클릭하면

public void onClick(View v) { 

// 이 액티비티를 시작하게 한 인텐트를 호출

Intent intent = getIntent(); 

EditText name_input = (EditText)findViewById(R.id.name_input);

EditText digit_input = (EditText)findViewById(R.id.digit_input);

intent.putExtra("data_name",name_input.getText().toString());

intent.putExtra("data_digit", digit_input.getText().toString());

 

// 추가 정보를 넣은 후 다시 인텐트를 반환합니다.

setResult(RESULT_OK,intent);

// 액티비티 종료 

finish(); 

}

});

}

}

 

참고 : http://androidhuman.tistory.com/125

반응형
반응형

이번 포스팅은 JSP 화면에 보이는 데이터를 엑셀 파일로 저장하는 방법에 대하여 알아보도록 하겠습니다.

JSP 화면에서 검색 조건을 제목으로 하여 검색하여 찾은 데이터를 리스트 형태로 조회하는 화면이 있을 때에 <EXCEL 파일 저장>이라는 버튼을 클릭하면 조건으로 들어가는 제목을 파라미터로 갖고 엑셀파일을 보여줄 수 있는 pop-up대용의 JSP화면으로 보내줍니다.

#. list.jsp

<%@ page contentType="text/html;charset=euc-kr" %>
<html>
.....

function toXLS() {
var address = "/jsp/excel.jsp?title=타이틀&file_name=리스트.xls";
location.href = address;
}
.....
<body>
.....
<a href="javascript:toXLS()"><strong>EXCEL 파일저장</strong></a>
.....
</body>
</html>

아래는 중요한 excel.jsp인데 JSP화면의 설정 코드를 눈여겨보아야 합니다.

#. excel.jsp
<%@ page contentType="application/vnd.ms-excel;charset=euc-kr" %>
===> contentType를 반드시 위와 같이 정의해주어야 원하는 결과를 얻을 수 있습니다.
<%
String file_name = request.getParameter("title");
response.setHeader("Content-Disposition", "attachment; filename=""+file_name+"";");
===> 저장할 시에 기본적으로 설정되는 파일명을 지정하고(여기서는 order_list.xls)
반드시 attachment로 설정을 해야 파일 열기, 저장 중에 선택하는 메시지가 뜹니다.
response.setHeader("Content-Description", "JSP Generated Data");
===> 정확히 어떤 정의였는지는 자세히 기억이 나지 않지만 필수적으로 설정해야 합니다.
String title = request.getParameter("title");
... ( title파라미터를 이용하여 DB에서 해당 목록을 ResultSet으로 받아온다. )
%>

<html>
<head>
<title>엑셀파일변환</title>
</head>
<body bgcolor=white>
<table border=1>
<tr bgcolor="#CACACA">
<th>지시일자</th>
<th>완료일</th>
<th>담당자</th>
<th>현 황</th>
<th>제 목</th>
</tr>
<%
while(rs.next()) {
%>
<tr>
<td><%=rs.getString("ord_date")%></td>
<td><%=rs.getString("cmp_date")%></td>
<td><%=rs.getString("charge_name")%></td>
<td><%=rs.getString("state_name")%></td>
<td><%=rs.getString("subject")%></td>
</tr>
<%
}
%>
</table>
</body>
</html>

이렇게 화면이 만들어지고 <EXCEL 파일 저장>을 클릭하게 되면 order_list.xls (지정한 파일명)를 현재 위치에서 열 것인지 저장할 것인지를 묻는 창이 뜹니다.

여기에서 저장을 하게 되면 이름을 바꿔서 저장이 가능하고, 열기를 선택하면 excel.jsp에 구성된 내용들이 현재 화면에 엑셀 형식으로 보이게 됩니다.

처음 참고자료를 뒤졌을 때 excel.jsp의 attachment 부분이 다른 방식으로 지정되면 곧바로 엑셀 파일 열기가 실행되어 난감했던 기억이 납니다.

반드시 attachment을 해야만 저장을 묻는다는 것을 기억해야 합니다.


참고 : http://scblood.egloos.com/2542763

반응형

'Development > Web' 카테고리의 다른 글

[Web] 뷰 컴포넌트 통신  (0) 2022.09.19
[Web] 뷰 컴포넌트  (0) 2022.09.18
[Web] 뷰 인스턴스 라이프 사이클  (0) 2022.09.18
[Web] 뷰 인스턴스  (0) 2022.09.18
[Web] JSP / Servlet/ Java 현재 경로 알아내기  (0) 2020.04.08

+ Recent posts