Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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

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
Java 从<;中选择项目后如何填充特定文本字段;h:选择一个功能表/>;JSF2.0_Java_Jsf 2 - Fatal编程技术网

Java 从<;中选择项目后如何填充特定文本字段;h:选择一个功能表/>;JSF2.0

Java 从<;中选择项目后如何填充特定文本字段;h:选择一个功能表/>;JSF2.0,java,jsf-2,Java,Jsf 2,当用户在inputText字段中选择项并用数据库中的数据填充时,我需要这样做 我有一个选择菜单列表: <h:selectOneMenu id="blah" value="#{controller.selected.id}" title="#{bundle.CreateTitle_id}" > <f:selectItems value="#{controller.listOfId()}" /> </h:selectOneMenu> // publi

当用户在inputText字段中选择项并用数据库中的数据填充时,我需要这样做

我有一个选择菜单列表:

<h:selectOneMenu id="blah" value="#{controller.selected.id}" title="#{bundle.CreateTitle_id}" > 
     <f:selectItems value="#{controller.listOfId()}" />
</h:selectOneMenu>
//

public ArrayList<Catalog> listOfId()  { 
          ArrayList<Catalog> list=new ArrayList<Catalog>();
   try{

    String upit="select id from Catalog";

   Statement st=connection.createStatement(); 
   ResultSet rs=st.executeQuery(upit);

   while(rs.next()) {

      Katalog k=new Katalog();
      k.setId(rs.getInt(1));
      k.setName(rs.getString(2));





         list.add(k);


   }

 disconnect();


   }
   catch (Exception ex) {
       ex.printStackTrace();
   }

   return list;
}
public ArrayList listOfId(){
ArrayList=新建ArrayList();
试一试{
String upit=“从目录中选择id”;
语句st=connection.createStatement();
结果集rs=st.executeQuery(upit);
while(rs.next()){
Katalog k=新Katalog();
k、 setId(rs.getInt(1));
k、 setName(rs.getString(2));
增加(k);
}
断开连接();
}
捕获(例外情况除外){
例如printStackTrace();
}
退货清单;
}
差不多就是这样


如果有什么需要解释的,我就在这里。它认为这很容易(比如说使用ajax),但我甚至不知道如何开始这样做…

您必须添加一个
f:ajax
(这是标准的,许多组件库提供扩展版本)来捕获
inputText
中的
更改
事件

<h:selectOneMenu id="blah" value="#{controller.selected.id}" title="#{bundle.CreateTitle_id}" >
  <f:selectItems value="#{controller.listOfId()}" />
  <f:ajax
     event="change"        <-- The event to capture. I believe that if not specified
                                 there is a default event to capture from
                                 each component (for inputText it would be "change")
     render="myForm:foo"  <-- Only repaint "blah"
     listener="#{controller.myBlahListener}"
</h:selectOneMenu>

<h:inputText id="foo" value="#{controller.fooText}"/>


让我研究一下ajax,然后再给您回复。:-)这个监听器有点让人困惑,但我想我可以在几个小时内理解这一点。更新后添加了触发ajax的事件。您能给我一个您自己的简单示例吗?仅对于ajax部分,我得到了bean概念,所有的方法都很好,只是ajax部分令人困惑!我将拥有从数据库填充的SeleConemu列表。它有自己的id。我还有一个输入文本,它填充了来自一个bean的相同数据,该bean使用一个id列表(在seleconemu中),一旦列表被更改。。。。如何编写代码?:)好的,我读错了,我以前的代码是在修改文本字段时更新列表。在这里更正。很抱歉让您感到厌烦,但如果您有时间,请查看此内容:-)
public ArrayList<Catalog> listOfId()  { 
          ArrayList<Catalog> list=new ArrayList<Catalog>();
   try{

    String upit="select id from Catalog";

   Statement st=connection.createStatement(); 
   ResultSet rs=st.executeQuery(upit);

   while(rs.next()) {

      Katalog k=new Katalog();
      k.setId(rs.getInt(1));
      k.setName(rs.getString(2));





         list.add(k);


   }

 disconnect();


   }
   catch (Exception ex) {
       ex.printStackTrace();
   }

   return list;
}
<h:selectOneMenu id="blah" value="#{controller.selected.id}" title="#{bundle.CreateTitle_id}" >
  <f:selectItems value="#{controller.listOfId()}" />
  <f:ajax
     event="change"        <-- The event to capture. I believe that if not specified
                                 there is a default event to capture from
                                 each component (for inputText it would be "change")
     render="myForm:foo"  <-- Only repaint "blah"
     listener="#{controller.myBlahListener}"
</h:selectOneMenu>

<h:inputText id="foo" value="#{controller.fooText}"/>