low level programmer

« servlet + session... | Main | EJB3 - Session bean »
星期三 七月 02, 2008

Seam最基礎的UI和Seam Component搭配

Description

還沒用過JSF. 書上有一個基礎的例子大概說明UI是怎樣和Seam Component搭配.
覺得這雖然對已經會的人沒甚麼用, 對我這種還不會的人多少可以了解一點.

Reference

Seam in Action - CH4

Codes

testview.xhtml
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:s="http://jboss.com/products/seam/taglib"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:rich="http://richfaces.org/rich"
                template="layout/template.xhtml">
    <ui:define name="body">
        <h:form id="testview" styleClass="edit">
            <rich:panel>
                <f:facet name="header">This is test view</f:facet>
                <s:decorate id="name" template="layout/edit.xhtml">
                    <ui:define name="label">Name</ui:define>
                    <h:inputText id="name" value="#{TestAction.name}" required="true"/>
                </s:decorate>
                
                <s:decorate id="password" template="layout/edit.xhtml">
                    <ui:define name="password">Password</ui:define>
                    <h:inputSecret id="password" value="#{TestAction.password}" required="true"/>
                </s:decorate>        
                
                <s:decorate id="createDate" template="layout/edit.xhtml">
                    <ui:define name="createDate">createDate</ui:define>
                    <rich:calendar id="createDate" value="#{TestAction.createDate}"/>
                </s:decorate>                
                
                <s:decorate id="gender" template="layout/edit.xhtml">
                    <ui:define name="gender">createDate</ui:define>
                    <h:selectOneRadio id="gender" value="#{TestAction.gender}">
                        <s:convertEnum/>
                        <s:enumItem enumValue="MALE" label="Male"/>
                        <s:enumItem enumValue="FEMALE" label="Female"/>
                    </h:selectOneRadio>
                </s:decorate>
                
                <div class="actionButtons">
                    <h:commandButton id="cancel" value="Cancel" action="home" immediate="true"/>
                    <h:commandButton id="show" value="Show" action="#{TestAction.show}">
                        <s:defaultAction/>
                    </h:commandButton>
                </div>
            </rich:panel>
        </h:form>
    </ui:define>
</ui:composition>
TestAction.java
@Scope(ScopeType.CONVERSATION)
@Name("TestAction")
public class TestAction {

    private Gender gender;
    private String password;
    private String name;
    private Date createDate;

    public boolean show() {
        System.out.println("No @In @Out");
        System.out.println("Gender:" + gender);
        System.out.println("password:" + password);
        System.out.println("name:" + name);
        System.out.println("createDate:" + createDate);
        return true;
    }

    @Destroy
    public void destroy() {
        System.out.println(TestAction.class + " destroied.");
    }
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Gender getGender() {
        return gender;
    }

    public void setGender(Gender gender) {
        this.gender = gender;
    }
}

迴響:

發表迴響:
  • HTML 語法: 關閉