Jsf h:选择一个列表框->;转换错误设置值'';对于';空转换器';

Jsf h:选择一个列表框->;转换错误设置值'';对于';空转换器';,jsf,seam,Jsf,Seam,在SEAM、JSF2环境中,我有一个字符串列表,我想从查找中添加这些字符串(然后再添加一些业务逻辑) *我知道,对于具有自定义对象的列表框,通常需要一个转换器,但我的对象是字符串,应该已经有了compareTo()方法。是的,我知道我在h:outputLabel中缺少“值”,但我不需要选择书名,但整个列表对我来说很重要 ... function selectBook(bookId, bookName) { var idInput = []; var idInput = jQuer

在SEAM、JSF2环境中,我有一个字符串列表,我想从查找中添加这些字符串(然后再添加一些业务逻辑)

*我知道,对于具有自定义对象的列表框,通常需要一个转换器,但我的对象是字符串,应该已经有了compareTo()方法。是的,我知道我在h:outputLabel中缺少“值”,但我不需要选择书名,但整个列表对我来说很重要

...
function selectBook(bookId, bookName) {
    var idInput = [];
    var idInput = jQuery("#bookForm\\:bookNames");
    idInput.push(bookName);
    }
...

...
<h:panelGroup id="booksField">
     <h:outputLabel for="booksListBox" value="Books:"/>
        <h:selectOneListbox id="booksListBox" >
           <s:selectItems var="_var" value="#{bean.searchCriteria.bookNames}" noSelectionLabel=""/>
        </h:selectOneListbox>
        <h:inputHidden id="bookNames" value="#{bean.searchCriteria.bookNames}" converter="StringListConverter"/>
    </h:panelGroup>
...
。。。
功能selectBook(bookId、bookName){
var=put[];
var-idInput=jQuery(“#bookForm\\:bookNames”);
push(bookName);
}
...
...
...
还有我的Java代码

...
private List<String> bookNames;

public List<String> getBookNames() {
    return bookNames;
}

public void setBookNames(List<String> bookNames) {
    this.bookNames = bookNames;
}
...
。。。
私人名单书名;
公共列表getBookNames(){
返回书名;
}
公共书名(列出书名){
this.bookNames=bookNames;
}
...

您的
inputHidden
有一个
列表
作为值,而不是字符串。您需要一个转换器来实现这一点。

您的
inpurthidden
有一个
列表
作为值,而不是字符串。您需要一个转换器来完成此操作。

我添加了一个类似的转换器。当然错误已经消失了,但是书名永远不会被放到列表中。好吧,回顾一下,我认为现在的问题是JavaScript问题。谢谢你的帮助!我添加了一个类似的转换器。当然错误已经消失了,但是书名永远不会被放到列表中。好吧,回顾一下,我认为现在的问题是JavaScript问题。谢谢你的帮助!