【问题标题】:pass form values in managed bean在托管 bean 中传递表单值
【发布时间】:2014-08-29 12:45:11
【问题描述】:

我想将我的表单值传递到我的托管 bean 中以便处理它,但是当我尝试在我的操作方法中检索值时,我总是得到一个空值

我的豆子

@ManagedBean(name="datas")
@SessionScoped

public class Datas implements Serializable {

    private static final long serialVersionUID = 1L;
    private String ID_primary;

    public Datas(){

    }

    public Datas (String ID_primary){   
        this.ID_primary=ID_primary;
    }
    public String getID_primary() {
        return ID_primary;
    }
    public void setID_primary(String ID_primary) {
        this.ID_primary= ID_primary;
    }

    public void process() {

        Map<String, String> request=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();

        String value = request.get("ID_primary"); // always return null
        System.out.println("ID" + value);

    }
}

我的表格

<h:form>
    <div align="left">                      
            <h:inputText id="ID_primary" name="ID_primary" value="#{datas.ID_primary}" />                           
    </div>
    ..........


    <div align="right">

                <h:commandButton action="#{datas.process()}" value="Create" type="submit" />
  </div>
</h:form>

非常感谢您的帮助

【问题讨论】:

    标签: java jsf managed-bean


    【解决方案1】:

    您有两个不同的form 元素,当您单击底部form 中的commandButton 时,顶部form 中的值不会随请求一起发送。

    您可以在form 中添加div 之类的标签,因此您可以在大form 中添加divs,如果这是您拆分它们的原因。

    同时在ID_primary字段中添加@ManagedProperty注解:

    public class Datas implements Serializable {
    
        private static final long serialVersionUID = 1L;
        @ManagedProperty(value = "#{Datas.ID_primary}")
        private String ID_primary;
        [..]
    

    编辑:

    好吧,我的错,我没有仔细看代码。在ManagedBeanManagedProperty 中,此属性将由JSF 自动设置,因此您可以这样阅读:

    public void process() {
            System.out.println("ID" + getID_primary());
    }
    

    【讨论】:

    • 非常感谢。我改变了表格,但我仍然从中得到空值:( .
    • 非常感谢,但我仍然有空值。当我进入调试模式时,我看到我的外部上下文不包含任何内容,所以问题可能就在这里
    • 非常感谢。你救了我的命,我的朋友:)。它现在与 managedProperty 和 getter 一起工作得很好。我沉迷于无效的 ExternalContext 方式。用你的方式更容易。再次感谢您
    • 拯救了我的一天!谢谢!
    猜你喜欢
    • 2015-12-02
    • 2012-01-17
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多