从JSF传输参数,具有F:属性到Java变量



我想将参数#{myvar.tc}与f:属性组件传输。在DataTable Cocukdoktor((方法中," dr_tc"来了。我想在参数传输后运行drgor.sayfayonlendirme((。但是#{myvar.tc}不转移。我能做些什么?

 <h:dataTable value="#{doktor.cocukDoktor()}" var="myvar">
                    <table>
                        <tr>
                            <td>
                                <h:column>
                                <h:graphicImage class="doktorfoto" value="resources/images/doktorfoto.jpg"/>  
                                </h:column>
                            </td>
                            <td>
                                <h:column>
                                     <h:form>
                                         <h:commandLink class="doktorismi" action="#{drgor.sayfaYonlendirme()}" actionListener="#{drgor.drtcAyarla}" >#{myvar.dr_adi} #{myvar.dr_soyadi}
                                             <f:attribute name="dr_tc" value="#{myvar.dr_tc}"/>
                                    </h:commandLink>   
                                    </h:form>
                                </h:column>
                            </td>
                        </tr>
                   </table>
                 </h:dataTable>

豆代码

@ManagedBean( name="drgor")
@SessionScoped
public class doktorgoruntule {
  Connection conn = null;
  PreparedStatement ps = null;
  ResultSet rs = null;
  String drAdi;
  String drSoyadi;
  public String getDrAdi() {
      return drAdi;
  }
  public void setDrAdi(String drAdi) {
    this.drAdi = drAdi;
  }
  public String getDrSoyadi() {
    return drSoyadi;
  }
  public void setDrSoyadi(String drSoyadi) {
    this.drSoyadi = drSoyadi;
  }

  public String dr_tc;
  public void setDr_tc(String dr_tc) {
    this.dr_tc = dr_tc;
  }
  public String getDr_tc() {
    return dr_tc;
  }
  public void drtcAyarla(ActionEvent event){
    dr_tc = (String)event.getComponent().getAttributes().get("dr_tc");
  }
  public String sayfaYonlendirme(){
    return "cocukDoktorGoruntule?faces-redirect=true”";
  }
  public ResultSet cocukdoktorGoruntule() throws Exception{

     try{
        Class.forName("org.postgresql.Driver");
        conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/tipmerkezivt","postgres", "2569");   
        ps = conn.prepareStatement("select * from doktor n" +
                                    "WHEREn" +
                                    "dr_tc = '"+dr_tc+"'" , ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        rs = ps.executeQuery();
        return rs;

    }
    catch (Exception e) {
        throw new Exception("Bağlantı başarısız!");
    }
    finally{
        conn.close();
    }         
  }
}

您可以尝试一下

    <h:form>
    <h:dataTable value="#{doktor.cocukDoktor()}" var="myvar">
     <h:column>
        <h:graphicImage class="doktorfoto" value="resources/images/doktorfoto.jpg"/>  
     </h:column>
    <h:column>
      <h:commandLink class="doktorismi" 
                     action="#{drgor.sayfaYonlendirme()}" 
                     actionListener="#{drgor.drtcAyarla}" 
                     value="#{myvar.dr_adi} #{myvar.dr_soyadi}"
     >
     <f:setPropertyActionListener target="#{drgor.tr_tc}" value="#{myvar.dr_tc}" />
     </h:commandLink>   
    <h:column>
    </h:dataTable>
    </h:form>

无论如何,无需执行表HTML的工作,它是由数据表完成的。同样,医生课程缺失,为您提供更多帮助。要获得更多令人满意的帮助,您需要提供更多信息。

最新更新