这种接缝就像一个简单的问题,但也许我错过了一些东西。我正在尝试使用当前登录用户预填充搜索过滤器中的用户字段。正在按预期填充角色过滤器,但用户字段默认为空白。我在bean中设置了一个日志语句,它验证了bean的设置。我还在goToBasicSearch函数中进行了搜索,并根据当前登录用户进行搜索。
正确填充下拉列表,选择用户并进行正常搜索。我想知道为什么UI没有使用默认值填充字段。技术堆栈:Seam 2.3,Jboss 7,JSF 2,Richfaces 4
豆:
@Name( "SearchAction" )
@Scope( ScopeType.CONVERSATION )
public class SearchAction
{
private SearchFilter searchFilter = new SearchFilter;
// other stuff
@Begin(join = false )
public String goToBasicSearch()
{
searchFilter.setRole( Roles.ANY );
searchFilter.setStaff( user.getStaff() );
return SEARCH;
}
XHTML
<!-- normal stuff -->
<h:selectOneMenu required="false" value="#{SearchAction.searchFilter.staff}">
<s:selectItems id="staffField" var="_selection" label="_selection.fullName" value="#{allStaff}" noSelectionLabel=""/>
<f:converter converterId="converter.staff"/>
</h:selectOneMenu>
<h:selectOneMenu id="roleField" required="false" value=#{SearchAction.searchFilter.role}">
<s:convertEnum />
<s:selectItems id="roleField" var="_selection" label="#{_selection.title} value=#{SearchAction.roleList}" noSelectionLabel="" hideNoSelectionLabel="true" itemValue="#{_selection}"
</h:selectOneMenu>
非常感谢
答案 0 :(得分:1)
我不必通过searchFilter.setStaff(user.getSTaff());
设置工作人员,而是必须搜索列表。
long id = user.getStaff().getId();
for( Staff staff : staffList )
{
if( staff.getId() == id )
{
searchFilter.setStaff( staff );
break;
}
}