Top > SAStrutsあれこれ > 先ずは住所情報1件をXMLで返してみましょう
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
!
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
!
!
package tutorial.action;
 
import java.io.IOException;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.util.ResponseUtil;
import tutorial.entity.Address;
import tutorial.entity.Employee;
import tutorial.service.DepartmentService;
import tutorial.service.EmployeeService;
import tutorial.service.AddressService;
 
public class XmlServiceAction {
 
    @Resource
    protected EmployeeService employeeService;
    
    @Resource
    protected DepartmentService departmentService;
    
    @Resource
    protected AddressService addressService;
    
    /**
     * 住所情報1件をXMLで返します
     * @return
     * @throws IOException
     * @throws JAXBException
     */
    @Execute(validator = false)
    public String index() throws IOException, JAXBException {
        Address a = addressService.findById(1);
        sendXML(Address.class, a);
        return null;
    }
    
    /**
     * JAXB2ヘルパーメソッド
     * 渡されたオブジェクトをXMLに変換して、クライアントへ送信します。
     * @param clazz objのクラス情報
     * @param obj XMLへの変換対象オブジェクト
     * @throws JAXBException
     * @throws IOException
     */
    private <T> void sendXML(Class<T> clazz, Object obj) throws JAXBException, IOException {
        HttpServletResponse httpServletResponse = ResponseUtil.getResponse();
        httpServletResponse.setContentType("application/xml");
        
        // POJO -> XML 変換を行うマーシャラを生成
        // clazzクラスをバインディングするコンテキストを生成
        JAXBContext context = JAXBContext.newInstance(clazz);
        Marshaller ma = context.createMarshaller();
        
        // POJO -> XML 変換して送信
        ma.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        ma.marshal(obj, httpServletResponse.getOutputStream());
    }
}


添付ファイル: filews_1address_1.jpg 285件 [詳細]

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2012-08-08 (水) 23:26:17 (2923d)