Search results for 'struts'

스트럿츠 2.1 릴리즈!! Committer 인터뷰

스트럿츠 2.1.이 릴리즈 되었습니다. 요즘 MS쪽 어플리케이션 개발 프로젝트를 하고있지만 여전히 자바쪽 흐름을 읽는것도 게을리 하고 있지 않습니다만, 쉽지 않네요.

스트럿츠 2.1은 많은 양의 코드를 Plug-In Framework로 옮기는 리펙토링, Convention plug-in에 의한 XML 설정 감소, 향상된 REST 지원에 초첨을 두고 진행되었습니다.

InfoQ에서 스트럿츠2 커미터인 Musachy Barroso씨와 인터뷰한 기사가 올라와서 포스팅 합니다.

2.0과 2.1의 차이점은 무엇인가요?
많은 수의 버그픽스가 있었습니다. 그리고 REST, Convention, Java Template과 같은 플러그인이 추가되었습니다.

많은 기능이 플러그-인 형태로 변경되었습니다. 이렇게 한 이유는 무엇인가요?
스트럿츠 코어에는 진정한 core만을 남기자는 아이디어에서 출발했습니다. 그리고 나머지는 플러그인에 집어 넣는거죠. 이렇게 하면서 코드의 유지보수가 쉬워 졌습니다. 그러면서 Dojo 플러그인 같은 것들은 더 이상 스트럿츠에서 지원하지 않습니다. 이런 변화는 제거된 플러그인을 사용하지 않는 개발자와 작은 footprint를 원하는 개발자 이외의 사람에게 직접적인 장점은 없습니다.
 
Ajax 태그를 depreciate 한 이유는 무엇인가요?
Struts2의 ajax 태그는 Dojo 0.4.x에 기반하고 있습니다. 그것을 Dojo의 최신버전에 맞춰 포팅하는것은 모든 ajax 태그의 코드를 다시 작성해야한 다는것과도 같은 이야기입니다. Dojo의 새로운 버전은 너무 빨리 출시되고 마이너 버전에서도 변경되는 코드의 양이 너무 많습니다. 태그가 Dojo의 모든 기능을 다 포함하고 있지 않기때문에 개발자는 주로 Dojo 라이브러리를 직접 사용하는 경향이 있습니다. 이런 이유들과 ajax 태그 개발 지원자의 부족으로 ajax 태그를 depreciate 했습니다.

어떤 이유로 CodeBehind 플러그인들을 Convention 플러그인으로 바꾸게 되었나요?
Convention은 외부 프로젝트였고 늦게 Struts에 추가되었습니다. Convention은 좀 더 빠른 ClassPath Scanner, 더 나은 Configuration elements, 로깅, 다양한 configuration 옵션, configuation reloading, 더 나은 문서화 등을 지원합니다.

Java Template 플러그인은 무엇인가요?
Java Template은 FreeMarker를 이용하여 java만으로 구현한 'simple theme' 구현체입니다. 이 플러그인의 태그는 재작성이 불가능한 약점이 있는 원래의 그것보다 4~5배 가량 빠르게 동작합니다.

다른 많은 Web Framework가 있는데 우리는 왜 Strtus2를 선택해야 하나요?
스트럿츠2는 아마도 가장 약한 커플링(loosely-coupled)으로 구현된 프레임워크일 겁니다. 많은 기능이 커스터마이징 없이, 혹은 약간의 커스터마이징만으로 사용할 수 있으며, 프레임워크를 익히기가 쉽습니다. 약한 커플링은 스트럿츠의 실체에 대한 지식 없이도 비지니스 로직을 작성 할 수 있도록 해 줍니다. 그러면서도 스트럿츠는 대용량 트래픽을 발생하는 사이트에서 유연한 확장성을 담보하고 있다는 점입니다.

마지막으로 한마디.
스트럿츠 2.1 출시까지 오랜 기간 공을들였습니다. 우리는 스트럿츠 프레임워크의 빌드와 릴리즈 프로세스 개선을 위해 정말 열심히 일하고 있습니다. 앞으로는 좀 더 짧은 주기로 새로운 버전이 릴리즈 되는것을 기대하셔도 좋습니다.
2009/02/03 16:37 2009/02/03 16:37
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

Struts File Upload

Struts File Upload.

In this tutorial you will learn how to use Struts to write program to upload files. The interface org.apache.struts.upload.FormFile is the heart of the struts file upload application. This interface represents a file that has been uploaded by a client. It is the only interface or class in upload package which is typically referenced directly by a Struts application.

Creating Form Bean
Our form bean class contains only one property theFile,  which is of type org.apache.struts.upload.FormFile. Here is the code of FormBean (StrutsUploadForm.java):

package roseindia.net;
import org.apache.struts.action.*;
import org.apache.struts.upload.FormFile;

/**

* @author Deepak Kumar
* @Web http://www.roseindia.net
* @Email roseindia_net@yahoo.com
*/

/**
* Form bean for Struts File Upload.
* */
public class StrutsUploadForm extends ActionForm {


  private
FormFile theFile;
  /**  
 
* @return Returns the theFile.
 
 
*/

 
public FormFile getTheFile() {  
    
return theFile;

 
}
 
/**  
 
* @param theFile The FormFile to set.
 
 
*/

 
public void setTheFile(FormFile theFile) {  
    this.theFile = theFile;

 
}
}

Creating Action Class
Our action class simply calls the getTheFile() function on the FormBean object to retrieve the reference of the uploaded file. Then the reference of the FormFile is used to get the uploaded file and its information. Here is the code of our action class(StrutsUploadAction.java):
package roseindia.net;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

/**
* @author Deepak Kumar
* @Web http://www.roseindia.net
* @Email roseindia_net@yahoo.com
*/

/**
* Struts File Upload Action Form.
* */

public class StrutsUploadAction extends Action {


 
public ActionForward execute( ActionMapping mapping,
   
          ActionForm form,
 
         
HttpServletRequest request,
 
         
HttpServletResponse response) throws Exception{
 

     StrutsUploadForm myForm =
(StrutsUploadForm)form;
     
    
// Process the FormFile
     
    
FormFile myFile = myForm.getTheFile();
     
    
String contentType = myFile.getContentType();
     
    
String fileName    = myFile.getFileName();
     
    
int fileSize       = myFile.getFileSize();
     
    
byte[] fileData    = myFile.getFileData()
;
   
     System.out.println("contentType: " + contentType);
     
     System.out.println("File Name: " + fileName)
;
 
  System.out.println("File Size: " + fileSize)
;

     return mapping.findForward("success");

 
}
}

Defining form Bean in struts-config.xml file
Add the following entry in the struts-config.xml file for defining the form bean:
<form-bean name="FileUpload" type="roseindia.net.StrutsUploadForm"/>

Defining Action Mapping
Add the following action mapping entry in the struts-config.xml file:

<action path="/FileUpload" type="roseindia.net.StrutsUploadAction"
       name="FileUpload" scope="request" validate="true"
       input="/pages/FileUpload.jsp">    
    <forward name="success" path="/pages/uploadsuccess.jsp"/>
</action>

Developing jsp page
Code of the jsp (FileUpload.jsp) file to upload is as follows:

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>

<html:html locale="true">
<head>
<title>Struts File Upload Example</title>
<html:base/>
</head>

<body bgcolor="white">
<html:form action="/FileUpload" method="post" enctype="multipart/form-data">

<table>
  <tr><td align="center" colspan="2">
  <font size="4">Please Enter the Following Details</font>
  </td></tr>
  <tr><td align="left" colspan="2">
  <font color="red"><html:errors/></font>
  </td></tr>
  <tr><td align="right"> File Name </td>
  <td align="left"> <html:file property="theFile"/> </td> </tr>
  <tr> <td align="center" colspan="2"> <html:submit>Upload File</html:submit>
  </td> </tr>
  </table>

</html:form>
</body>
</html:html>

Note that we are setting the encrypt property of the form to enctype="multipart/form-data".
code for the success page (uploadsuccess.jsp) is:

<html>
  <head>
  <title>Success</title>
  </head>

  <body>
  <p align="center"><font size="5" color="#000080">File Successfully Received</font></p>
  </body>
</html>

Add the following line in the index.jsp to call the form.

<li>
  <html:link page="/pages/FileUpload.jsp">Struts File Upload</html:link>
  <br> Example shows you how to Upload File with Struts.
</li>

Building Example and Testing

2007/05/24 01:50 2007/05/24 01:50
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다