相关疑难解决方法(0)

如何在f中使用枚举值:selectItem(s)

我想制作一个selectOneMenu下拉列表,以便我可以在我的问题上选择一个状态.是否可以使f:selectItem更灵活,考虑到如果枚举的顺序发生变化会发生什么,以及列表是否很大?我能做得更好吗?是否可以自动"选择"问题所具有的项目?

恩类

public enum Status {
    SUBMITTED,
    REJECTED,
    APPROVED
}
Run Code Online (Sandbox Code Playgroud)

问题实体

@Enumerated(EnumType.STRING)
private Status status;
Run Code Online (Sandbox Code Playgroud)

JSF

<div class="field">
    <h:outputLabel for="questionStatus" value="Status" />
    <h:selectOneMenu id="questionStatus" value="#{bean.question.status}" >
        <f:selectItem itemLabel="Submitted" itemValue="0" />
        <f:selectItem itemLabel="Rejected" itemValue="1" />
        <f:selectItem itemLabel="Approved" itemValue="2" />
    </h:selectOneMenu>
    <hr />
</div>
Run Code Online (Sandbox Code Playgroud)

jsf enums selectonemenu jsf-2

100
推荐指数
2
解决办法
8万
查看次数

在h:selectManyCheckbox中使用enum

我想在一个中使用枚举值<h:selectManyCheckbox>.正确填充复选框,但是,在选择某些值并提交它们时,它们的运行时类型是String,而不是枚举.我的代码:

<h:selectManyCheckbox value="#{userController.roles}" layout="pageDirection">
     <f:selectItems value="#{userController.rolesSelectMany}" />
</h:selectManyCheckbox>
Run Code Online (Sandbox Code Playgroud)

UserController类(SecurityRole是枚举类型):

public SelectItem[] getRolesSelectMany() {
    SelectItem[] items = new SelectItem[SecurityRole.values().length];

    int i = 0;
    for (SecurityRole role : SecurityRole.values()) {
        items[i++] = new SelectItem(role, role.toString());
    }
    return items;
}     

public List<SecurityRole> getRoles() {
     getCurrent().getRoles();
}

public void setRoles(List<SecurityRole> roles) {
     getCurrent().setRoles(roles);
}
Run Code Online (Sandbox Code Playgroud)

当JSF调用setRoles方法时,它包含String类型的列表,而不是枚举类型.有任何想法吗?谢谢!

jsf enums jsf-2 selectmanycheckbox

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

如何将所有枚举值显示为<f:selectItems>,并将枚举属性作为标签

我有一个RoleStatus枚举,它作为Role实体的属性映射到DB中的整数(但该部分是无关紧要的).我想提出一个List<Role><p:dataTable>其中一列应该有一个<h:selectOneMenu>RoleStatus的财产Role实体.如何使用或不使用OmniFaces实现此功能

这是枚举:

public enum RoleStatus {

    ACTIVE(1, "Active"),
    DISABLE(2, "Disable");

    private final int intStatus;
    private final String status;

    private RoleStatus(int intStatus, String status) {
        this.intStatus = intStatus;
        this.status = status;
    }

    public int getIntStatus() {
        return status;
    }

    public String getStatus() {
        return status;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是支持bean:

@ManagedBean
@ViewScoped
public class RoleController {

    private List<Role> roles;

    @ManagedProperty("#{roleService}")
    private IRoleService roleService;

    @PostConstruct
    public …
Run Code Online (Sandbox Code Playgroud)

datatable jsf enums selectonemenu omnifaces

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