Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
财产';登录';在类型java.lang.String上找不到_Java_Casting - Fatal编程技术网

财产';登录';在类型java.lang.String上找不到

财产';登录';在类型java.lang.String上找不到,java,casting,Java,Casting,我试图获取Primefaces的selectOneMenu的值,但它给出了一个not found属性的错误。UserBean类中的我的方法返回一个UserDTO对象,并且登录在实体类中不区分大小写,但它仍然捕获错误 UserBean类 public List<UserDTO> getIds() { Object[] array = userService.getWrapperData().toArray(); List<String> values = n

我试图获取Primefaces的selectOneMenu的值,但它给出了一个not found属性的错误。UserBean类中的我的方法返回一个UserDTO对象,并且登录在实体类中不区分大小写,但它仍然捕获错误

UserBean

public List<UserDTO> getIds() {
    Object[] array = userService.getWrapperData().toArray();
    List<String> values = new ArrayList<String>();
    for (Object temp : array) {
        for (String s : temp.toString().split(",")) {
            if (("id").equals(s.split("=")[0]))
                values.add(s.split("=")[1]);
        }
    }
    String[] loginVals = new String[ values.size() ];
    values.toArray( loginVals );
    @SuppressWarnings("unchecked")
    List<UserDTO> valuesLogin = (List) values;
    return valuesLogin;
}
indexDTO.xhtml

<h:body styleClass="login">
        <h:form id="form">
            <p:dataTable var="users" value="#{userBean.users}" paginator="true"
                widgetVar="usersTable" rows="10" sortMode="multiple"
                paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
                rowsPerPageTemplate="5,10,15" selectionMode="single" id="userTable"
                lazy="true">
            <p:column headerText="Id" sortBy="#{users.id}"
                filterBy="#{users.id}">
                <f:facet name="filter">
                    <p:selectOneMenu onchange="PF('usersTable').filter()">
                        <f:selectItem itemLabel="Select One" itemValue="#{null}"
                            noSelectionOption="true" />
                        <f:selectItems value="#{userBean.getIds()}" var="userLogin" itemValue="#{userLogin.login}" itemLabel="#{userLogin.login}" />
                    </p:selectOneMenu>
                </f:facet>
                <h:outputText value="#{users.id}" />
            </p:column>
        </p:dataTable>
    </h:form>
</h:body>

您正在将
List
转换为
List

此外,如果要将构造函数
UserDTO(字符串登录)
添加到
中,则可以轻松地将
值映射到
值登录:

valuesLogin = values.stream().map(UserDTO::new).collect(Collectors.toList());

我用一种非常奇怪的方式解决了我的问题

我把我的UserBean方法改成了这个

    public List<UserDTO> getIds() {
        return userService.getWrapperData();
    }
public List getIds(){
返回userService.getWrapperData();
}

然后我可以从indexDTO.xhtml中提取ID。

userBean.getIds()返回什么?[1,2,3,5],这是我已经想要的@皮罗
List<String> values = new ArrayList<String>();
...
@SuppressWarnings("unchecked")
List<UserDTO> valuesLogin = (List) values;
return valuesLogin;
for(String login : values){
  UserDTO dto = new UserDTO();
  dto.setLogin(login);
  valuesLogin.add(dto);
}
valuesLogin = values.stream().map(UserDTO::new).collect(Collectors.toList());
    public List<UserDTO> getIds() {
        return userService.getWrapperData();
    }