Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Jsf 2 <;f:选择项目>;未在<;h:选择manylistbox>;_Jsf 2_Selectmanylistbox - Fatal编程技术网

Jsf 2 <;f:选择项目>;未在<;h:选择manylistbox>;

Jsf 2 <;f:选择项目>;未在<;h:选择manylistbox>;,jsf-2,selectmanylistbox,Jsf 2,Selectmanylistbox,我从JSF开始,试图让下面的简单示例正常工作,但它只显示一个空矩形 java bean代码是: import javax.faces.model.SelectItem; import java.util.*; public class SItemsBean { private List options; public SItemsBean() { options = new ArrayList(); SelectItem option = new SelectItem(

我从JSF开始,试图让下面的简单示例正常工作,但它只显示一个空矩形

java bean代码是:

import javax.faces.model.SelectItem;
import java.util.*;

public class SItemsBean
{ 
  private List options;
  public SItemsBean() 
  {
  options = new ArrayList();
  SelectItem option = new SelectItem("ch1", "choice1", "This bean is for selectItems tag", true);
  options.add(option);
  option = new SelectItem("ch2", "choice2");
  options.add(option);
  option = new SelectItem("ch3", "choice3");
  options.add(option);
  option = new SelectItem("ch4", "choice4");
  options.add(option);
  option = new SelectItem("ch5", "choice5");
  options.add(option);
  }

   public void setOptions(List opt)
  {
   options = opt;
  }

   public List getOptions()
  {
   return options;
  }
}
xhtml代码是:

<h:form>
<h:outputText value="Select choices given below :"/><br/><br/>
<h:selectManyListbox id="subscriptions" value="#{SItemsBean.options}" size="3">
<f:selectItems value="#{SItemsBean.options}" />
</h:selectManyListbox>
</h:form>



并在faces-config.xml中附加以下内容:

<managed-bean>
    <managed-bean-name>sItemsBean</managed-bean-name>
    <managed-bean-class>sItemsBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
        <display-name>options</display-name>
        <property-class>java.util.List</property-class>
    </managed-property>     
</managed-bean>

sItemsBean
sItemsBean
要求
选择权
java.util.List

您的问题是由以下托管属性引起的:

<managed-property>
    <display-name>options</display-name>
    <property-class>java.util.List</property-class>
</managed-property>     

选择权
java.util.List
托管属性是在构造bean之后设置的。这个函数基本上用空列表设置
options
属性,从而覆盖您在bean的构造函数中努力填充的列表

我不知道您为什么这样配置它,但我相信您误解了
的用途。它并不打算“声明”bean的所有可用属性,而是在构建bean之后将bean的属性设置为指定的值

要解决您的具体问题,只需从
faces config.xml
中删除


与具体问题无关,您确定您正在从正确的JSF资源中学习吗?到目前为止,您发布的代码是旧JSF 1.x的典型代码,并且根本没有使用任何新的JSF 2.x特性,例如
@ManagedBean
。确保您从正确的JSF资源中学习,因为在JSF2.x中,许多事情的完成方式与JSF1.x中的不同(更好)

另见:
  • (使用JSF2.x目标示例)

    • 您的问题是由以下托管属性引起的:

      <managed-property>
          <display-name>options</display-name>
          <property-class>java.util.List</property-class>
      </managed-property>     
      
      
      选择权
      java.util.List
      
      托管属性是在构造bean之后设置的。这个函数基本上用空列表设置
      options
      属性,从而覆盖您在bean的构造函数中努力填充的列表

      我不知道您为什么这样配置它,但我相信您误解了
      的用途。它并不打算“声明”bean的所有可用属性,而是在构建bean之后将bean的属性设置为指定的值

      要解决您的具体问题,只需从
      faces config.xml
      中删除


      与具体问题无关,您确定您正在从正确的JSF资源中学习吗?到目前为止,您发布的代码是旧JSF 1.x的典型代码,并且根本没有使用任何新的JSF 2.x特性,例如
      @ManagedBean
      。确保您从正确的JSF资源中学习,因为在JSF2.x中,许多事情的完成方式与JSF1.x中的不同(更好)

      另见:
      • (使用JSF2.x目标示例)

      非常感谢BalusC,这解决了问题,我真的从Oracle的Java EE教程开始,但他们的解释不是很清楚,所以我在谷歌上搜索找到了这本旧教程,并感谢链接。非常感谢BalusC,这解决了问题,我真的是从Oracle的JavaEE教程开始的,但是他们的解释不是很清楚,所以我在谷歌上找到了这本老教程,谢谢你的链接。