如何从jsf-jsp传递值

时间:2011-03-29 04:54:24

标签: jsf

如何将用户输入的值从/向JSP传递给我使用JSF作为框架?这是我的代码:

<h:dataTable id="dt1" value="#{Ack.list}" var="ack" >
    <h:column>
        <f:facet name="header">
            <h:outputText style=""value=" Number" />
        </f:facet>
        <h:outputText style="" value="#{ack.number}" ></h:outputText>
    </h:column>
    <h:column>
        <f:facet name="header">
            <h:outputText value="Acknowledgement"/>
        </f:facet>
        <h:inputText value="" > </h:inputText>
    </h:column>
    <h:column>
        <h:outputText value=""/>
        <h:commandButton action="" value="Submit"></h:commandButton>
    </h:column>
</h:dataTable>

我想在为“确认”提供的文本字段中输入一些值,然后单击“提交”按钮。如何在按钮点击时发送用户输入的“确认”?

1 个答案:

答案 0 :(得分:2)

首先将属性acknowledgement添加到类Ack(至少是表示数据表的每个项目的类,如表的var属性中所声明的那样)。

public class Ack {
    private String acknowledgement;

    // Add/generate getter and setter.
}

然后将输入字段绑定到该字段。

<h:inputText value="#{ack.acknowledgement}" />

确保表已经放在<h:form>内,我还将命令按钮移到表外,一个按钮就足够了。将其action绑定到支持bean方法。

<h:form>
    <h:dataTable ...>
        ...
    </h:dataTable>
    <h:commandButton action="#{Ack.submit}" value="Submit" />
</h:form>

最后在bean中定义方法。那时,JSF已经设置了提交的值。您只需将它们保存在数据库中等等。

public String submit() { 
    ackDAO.save(list);
    return "outcome";
}