いっぽんの猟銃のむこうに (DAIZOじいさんとGun)

ヌルめの技術メモとか。フリーランスやってます (http://acez.jp/)

JBoss SeamでREST形式URI

http://172.20.8.181:8080/proto/rest/2

でid=2の商品の詳細情報を直接表示したりする方法。


[war]/WebContent/WEB-INF/components.xml

   <!-- use rewrite -->
   <web:rewrite-filter view-mapping="*.seam" />

[war]/WebContent/rest.page.xml(page.xmlでも可)

<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://jboss.com/products/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd">

    <begin-conversation join="true" />
    <rewrite pattern="/rest/{restId}" />
    <rewrite pattern="/rest" />

    <param name="restId" value="#{bean.id}" />

    <action execute="#{testAction.showDetailById(bean)}" />
    <navigation>
        <rule if-outcome="detail">
            <render view-id="/xhtml/test_detail.xhtml" />
        </rule>
    </navigation>

</page>

URIの{restId}部分をbeanに入れてそれでActionを呼ぶ。
beanは普通のPOJOクラス。