相关疑难解决方法(0)

'null Converter'的转换错误设置值 - 为什么我需要JSF中的转换器?

我有理解如何有效地使用JSF 2中的选择和POJO /实体.例如,我试图Warehouse通过下面的下拉列表选择一个实体:

<h:selectOneMenu value="#{bean.selectedWarehouse}">
    <f:selectItem itemLabel="Choose one .." itemValue="#{null}" />
    <f:selectItems value="#{bean.availableWarehouses}" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

以下托管bean:

@Named
@ViewScoped
public class Bean {

    private Warehouse selectedWarehouse;
    private List<SelectItem> availableWarehouses;

    // ...

    @PostConstruct
    public void init() {
        // ...

        availableWarehouses = new ArrayList<>();

        for (Warehouse warehouse : warehouseService.listAll()) {
            availableWarehouses.add(new SelectItem(warehouse, warehouse.getName()));
        }
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

请注意,我使用整个Warehouse实体作为值SelectItem.

当我提交表单时,会失败并显示以下消息:

'null Converter'的转换错误设置值'com.example.Warehouse@cafebabe'.

我希望Warehouse当我将它包装在一个中时,JSF可以将正确的对象设置为我的托管bean SelectItem.将我的实体包装在里面SelectItem意味着跳过Converter为我的实体创建一个.

Converter每当我想在我的实体中使用实体时,我真的必须使用<h:selectOneMenu>吗?JSF应该可以从可用项列表中提取所选项.如果我真的必须使用转换器,那么实际的方法是什么?到目前为止,我想到了这个:

  1. Converter为实体创建实现. …

jsf converter selectonemenu jsf-2

38
推荐指数
1
解决办法
5万
查看次数

我可以在primefaces autocomplete组件中使用omnifaces通用转换器吗?

我试图在Primefaces自动完成组件中使用Omnifaces通用转换器 像这样:

<p:dataTable id="transactiondetailsid" value="# {stockTransactionsBean.stkTransHeader.stkTransDetailsList}" var="stkTransDet"  rowIndexVar="rowIndex">  

      <p:column>  
       <f:facet name="header">  
     <h:outputText value="Item Code" />  
    </f:facet>  

 <p:autoComplete id="dd" dropdown="true" autocomplete="true" 
   value="#{stkTransDet.item}" var="i" itemLabel="#{i.itemnamee}" 
   itemValue="#{i}" converter="omnifaces.SelectItemsConverter"
   completeMethod="#{stockTransactionsBean.completeItems}" forceSelection="true" 
   scrollHeight="250" minQueryLength="3" maxResults="30" queryDelay="1000" size="20" /> 

     </p:column>  
      </p:dataTable> 
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为omn​​ifaces.SelectItemsConverter依赖于 f:selectItems标签,它不能在p:autoComplete中使用

任何建议或解决方法????

primefaces jsf-2 omnifaces

5
推荐指数
1
解决办法
2668
查看次数

使用POJO和String值自动完成Primefaces

我需要具有带有字符串值的自动填充功能,因为不能通过自动填充方法将用户限制为提供的项目,但是他们应该能够在搜索字段中写入任何内容。如果他们愿意,他们也可以从建议中选择。

现在,我总是得到 /archive/overview.xhtml @ 28,57 itemLabel =“#{item.name}”:类'java.lang.String'没有属性'name'。

XHTML:

<p:autoComplete id="vyraz" value="#{archiveView.searchString}"
  completeMethod="#{archiveView.autocomplete}"
  var="item" itemLabel="#{item.name}" itemValue="#{item.name}"
  converter="archiveConverter" forceSelection="false" minQueryLength="2"
  autoHighlight="false" effect="fade">

  <p:column>
    <h:outputText value="#{item.name}"/>
    <h:outputText value=" (Barcode: #{item.barcode})" rendered="#{item.barcode ne null}"/>
  </p:column>

  <p:column>
   <h:outputText value="#{item.type.label}" style="font-weight: bold;"/>
  </p:column>
</p:autoComplete>
Run Code Online (Sandbox Code Playgroud)

豆:

private String searchString; // + getter and setter

public List<ArchiveAutoCompleteDto> autocomplete(String query) {
    // get and return from lucene index/database
}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这一点(Primefaces 5.2)?
谢谢!

jsf autocomplete converter primefaces jsf-2

2
推荐指数
1
解决办法
5200
查看次数