使用RichFaces suggestionBox
时,如何将带有文本输入的页面中的多个id或值传递给suggestionBox
辅助bean。即:显示选定州内的建议城市列表?这是我的autoComplete
方法。
public List< Suburb > autocomplete(Object suggest)
{
String pref = (String) suggest;
ArrayList< Suburb > result = new ArrayList< Suburb >();
Iterator< Suburb > iterator = getSuburbs().iterator();
while( iterator.hasNext() )
{
Suburb elem = ((Suburb) iterator.next());
if( (elem.getName() != null && elem.getName().toLowerCase().indexOf( pref.toLowerCase() ) == 0) || "".equals( pref ) )
{
result.add( elem );
}
}
return result;
}
正如您所看到的,页面传递了一个值,Object
建议,h:inputText
的文字(在faceLets m:textFormRow
中)
<m:textFormRow id="suburb" label="#{msgs.suburbPrompt}"
property="#{bean[dto].addressDTO.suburb}"
required="true" maxlength="100" size="30" />
<rich:suggestionbox height="200" width="200" usingSuggestObjects="true"
suggestionAction="#{suburbsMBean.autocomplete}" var="suburb" for="suburb"
fetchValue="#{suburb.name}" id="suggestion">
<h:column>
<h:outputText value="#{suburb.name}" />
</h:column>
</rich:suggestionbox>
在页面的前面,您可以选择一个州,我想用它来削减建议框显示的郊区列表。
答案 0 :(得分:3)
(免责声明:我知道很久以前就问过这个问题了,但也许这会帮助有类似问题的人......)
查看此博客文章,其中涉及类似的内容: RichFaces - SuggestionBox and hidden field 。
关键是使用<f:setPropertyActionListener value="#{...}" target="#{...}">
包裹在<a4j:support event="onselect" ajaxSingle="true">
内。当SuggestionBox触发onselect
时,这可用于为辅助bean设置附加值。
通过这种方法,我设法创建了一个SuggestionBox,显示(和自动填充)客户的名称,但在选择时设置了一个完整的客户对象(具有多个属性;由一个bean的id。
答案 1 :(得分:1)
在<f:parameter
内使用<rich:suggestionbox
标记吗?
答案 2 :(得分:0)
你看过这个RichFaces的建议框demo了吗?示例下有链接来查看源。
编辑:
在用户输入suggestionBox之前,您需要在bean中使用state的值。我将使用RichFaces ajax支持将state的值传递给bean,因此当调用autocomplete方法时,用户在页面上选择的状态将填充郊区列表。
答案 3 :(得分:0)
您可以使用headerDropzone.uploadFiles([imageFile])
中的<f:parameter
标签。我的任务是根据list元素的某些属性过滤列表,有时可以忽略该属性。就像,有时我想要一份只有柑橘类水果的清单,有时我想要一整套可用的水果。
在页面中:
rich:suggestionbox
我有一个类(<rich:suggestionbox usingSuggestObjects="true"
suggestionAction="#{listBuilder.autocompleteFilterFruit('')}" var="ind"
for="fruitInput" fetchValue="#{fruit.name}" id="suggestion" >
<f:param name="constrainInd" value="#{basket.isConstrainedToCitrus}" />
...
</rich:suggestionbox>
)知道列表是否必须特殊过滤,另一个类(Basket
)构建列表。
在ListBuilder
:
Basket
在ListBuilder中:
public Boolean getIsConstrainedToCitrus ()
{
return new Boolean ( logic that answers "is this basket for citrus only" );
}