【问题标题】:p:selectOneMenu not workingp:selectOneMenu 不工作
【发布时间】:2015-09-28 13:21:15
【问题描述】:

在我的 JSF 中,我有以下代码:

 <p:outputLabel value="Area" for="area" />
 <p:selectOneMenu value="#{addActionView.area}" id="area">
   <f:selectItems value="#{addActionView.areas}" />
 </p:selectOneMenu>     

 <p:commandButton value="Save" action="#{addActionView.save}" />

AddActionView.java:

    public List<Area> getAreas() {
    List<Area> result = new LinkedList<Area>();
            ... fill in Values
    return result;
}

private Area area;

public Area getArea() {
    return area;
}

public void setArea(Area bereich) {
    this.area = bereich;
}

当我单击命令按钮时,没有任何反应。当我删除 selectOneMenu 时,页面按预期工作。我的错在哪里?

【问题讨论】:

  • “什么都没有发生”并不聪明。检查服务器,检查客户端日志检查页面中添加的消息组件等......做一些基本的jsf调试。最有可能:缺少所需的转换器,因为您似乎在选择菜单中使用“对象”而不是字符串
  • 甚至没有日志信息...
  • 我在托管 bean 中看不到 save() 方法。您是否不小心忘记发布它或没有故意包含在帖子中?您是否在关联的 bean 中定义了该方法?
  • 添加&lt;p:messages autoUpdate="true"/&gt;。您现在看到任何消息了吗?

标签: jsf jsf-2 primefaces


【解决方案1】:

我不确定这是否完全有必要,但我将选择选项列表作为类 javax.faces.model.SelectItem; 的一个实例,而不是我定义的东西我。

JSF 需要知道在下拉框中的类区域实例中显示哪些属性,因此您可以假设您必须使用内置类或指定 id 为 area.getId() 和要显示的字符串是 area.getString() 等。

但是,我什至不知道这个答案是否解决了您的问题,因为问题中提出的问题不清楚。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多