将属性值设置为托管Bean JSF 2.2中的String

时间:2014-05-28 09:11:58

标签: java database jsf-2 attributes managed-bean

我的托管bean中有一个名为chemin的属性,我想将它的值设置为String(属性值应存储在数据库中,而不是来自表单),但我不是&# 39;不知道该怎么做。 chemin属性位于一个上传文件并将其存储在数据库中的亲戚信息的方法中,例如日期,文档标题,描述和上传文件的路径(文件存储在目录中)。 这是代码: 托管bean:

public String upload() throws IOException{
    file.write(getFilename(file));
    docDAO.createDoc(idDocument, titreDocument, descriptionDocument, sousCategorie, Categorie, chemin, dateMise, lien);
    idDocument=null;
    titreDocument="";
    descriptionDocument="";
    lien="";
    sousCategorie="";
    dateMise="";
    Categorie="";
    chemin="C:\\data\\" +getFilename(file);
}

DAO课程:

public void createDoc(Integer idDocument, String titreDocument, 
            String descriptionDocument, String sousCategorie
            , String Categorie, String chemin, String dateMise, String lien) {

        em.getTransaction().begin();
        Document f =new Document();
        f.setIdDocument(idDocument);
        f.setDateMise(dateMise);
        f.setDescriptionDocument(descriptionDocument);
        f.setLien(lien);
        f.setChemin(chemin);
        f.setTitreDocument(titreDocument);
        f.setCategorie(Categorie);
        f.setSousCategorie(sousCategorie);  
        em.persist(f);
        em.getTransaction().commit();

    }

xhtml页面:

<h:form>
        <h:outputText  value="chemin"></h:outputText>
        <h:inputHidden value="#{docBean.chemin}"></h:inputHidden><br/> 
        <!--  <c:set value="mobil" target="#{docBean}" property="chemin" /> -->
        <h:outputText  value="Date de la mise "></h:outputText>
        <h:inputText value="#{docBean.dateMise}"></h:inputText><br/>
        <h:outputText  value="Lien"></h:outputText>
        <h:inputText value="#{docBean.lien}"></h:inputText><br/>
        <h:outputText  value="Catégorie"></h:outputText>
        <h:inputText value="#{docBean.categorie}"></h:inputText><br/>
        <h:outputText  value="sous catégorie"> </h:outputText>
        <h:inputText value="#{docBean.sousCategorie}"></h:inputText><br/>
        <h:outputText> télécharger le document</h:outputText>
        <h:inputFile value="#{docBean.file}"></h:inputFile><br/>
        <h:commandButton value="valider" action="#{docBean.upload}"/>
    </h:form>

任何想法都可以提供帮助。

1 个答案:

答案 0 :(得分:1)

首先,您必须从xhtml页面中删除<h:inputHidden value="#{docBean.chemin}"></h:inputHidden>,并在调用docDAO.createDoc()之前在上传方法中将chemin提供给所需的值,以便将其保存在数据库中