Привет, я хочу кое-что спросить, я пытаюсь сделать форму для веб-сайта, используя Java с Primeface, я делаю эту форму с 2 страницами, но когда я пытаюсь ввести данные, данные со второй страницы иногда не могут быть установлены в базе данных, когда Я пытаюсь изменить код, данные на первой странице не могут быть установлены, но данные на второй странице могут быть установлены в базе данных
это мой код для сохранения данных
public String save(){
String nextPage = "";
PRPKUserNonIt PRPKUser = new PRPKUserNonIt();
PRPKUser prpkUser = new PRPKUser();
setListUserSelected(chooseBean.getListSelecteduser());
try{
prpkUserController.save(prpkUser);
nextPage = "/prpk/master_prpk.xhtml?faces-redirect=true";
RequestContext rq = RequestContext.getCurrentInstance();
rq.execute("PF('successDialog').show();");
}catch(Exception e){
e.printStackTrace();
FacesMessage messageFailed = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error","Save data failed");
RequestContext.getCurrentInstance().showMessageInDialog(messageFailed);
nextPage = "#";
}
Group group = new Group();
setListGroupSelected(chooseTargetSDDialogBean.getGroupSelection());
try{
groupController.save(group);
nextPage = "/prpk/master_prpk.xhtml?faces-redirect=true";
RequestContext rq = RequestContext.getCurrentInstance();
rq.execute("PF('successDialog').show();");
}catch(Exception e){
e.printStackTrace();
FacesMessage messageFailed = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error","Save data failed");
RequestContext.getCurrentInstance().showMessageInDialog(messageFailed);
nextPage = "#";
}
PRPKNon PRPKNon = new PRPKNon();
PRPKNon.setUser_non_itId(userLogin.getId());
PRPKNon.setSenderId(userLogin.getId());
PRPKNon.setPic_prpkId(userLogin.getId());
PRPKNon.setCreatedBy(userLogin.getName());
PRPKNon.setUpdatedBy(userLogin.getName());
for (Map.Entry<String, Integer> e : prpkTypeIdMap.entrySet()) {
if (prpkTypeTypeId.equals(e.getValue())) {
prpkTypeType = e.getKey();
continue;
}
}
PRPKNon.setPrpkTypeId(prpkTypeTypeId); //diubah
PRPKNon.setPrpkTypeName(prpkTypeType);
PRPKNon.setPrpkDesc(prpkDesc);
PRPKNon.setMemoNumber(memoNumber);
for (Map.Entry<String, Integer> e : priorityIdMap.entrySet()) {
if (priorityTypeId.equals(e.getValue())) {
priorityType = e.getKey();
continue;
}
}
setPriorityLevelId(priorityTypeId);
setPriorityName(priorityType);
for (Map.Entry<String, Integer> e : departmentIdMap.entrySet()) {
if (departmentTypeId.equals(e.getValue())) {
departmentType = e.getKey();
continue;
}
}
for (Map.Entry<String, Integer> e : businessUnitIdMap.entrySet()) {
if (businessUnitTypeId.equals(e.getValue())) {
businessUnitType = e.getKey();
continue;
}
}
PRPKNon.setPriorityId(getPriorityLevelId());//diubah
PRPKNon.setPriorityLevel(getPriorityName());
PRPKNon.setBusinessUnitId(getBusinessId());
PRPKNon.setBusinessUnitName(getBussinessName());
PRPKNon.setPicDepartmentId(getDepartmentId());
PRPKNon.setDepartmentName(getDepartmentNames());
PRPKNon.setBusinessUnitId(getBusinessUnitId());
PRPKNon.setPicDepartmentId(departmentTypeId);//diubah
System.out.println("Pic : "+ prpk.getPicDepartmentId());
PRPKNon.setDepartmentName(departmentType);
PRPKNon.setBusinessUnitId(businessUnitTypeId);//diubah
PRPKNon.setBusinessUnitName(businessUnitType);
nextPage = "/prpk/next_prpk_new.xhtml?faces-redirect=true";
PRPKNon.setPrpkRequest(prpkRequest);
PRPKNon.setPrpkBackground(prpkBackground);
PRPKNon.setPrpk_analysisBenefit(prpk_analysisBenefit);
try{
prpkNonController.save(PRPKNon);
nextPage = "/prpk/next_prpk_new.xhtml?faces-redirect=true";
RequestContext rq = RequestContext.getCurrentInstance();
rq.execute("PF('successDialog').show();");
}catch(Exception e){
e.printStackTrace();
FacesMessage messageFailed = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error","Save data failed");
RequestContext.getCurrentInstance().showMessageInDialog(messageFailed);
nextPage = "#";
}
return nextPage;
}
это xhtml для первой страницы
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
template="/user_templates/template.xhtml">
<ui:define name="metadata">
</ui:define>
<ui:define name="content">
<h:form id="formId" style="margin-top:35;" prependId="false">
<p:contextMenu>
<p:menuitem value="© Indomaret" />
</p:contextMenu>
<p:breadCrumb>
<p:menuitem value="Home" />
<p:menuitem value="PRPK" />
<p:menuitem value="List PRPK"/>
<p:menuitem value="Add New PRPK"/>
<p:menuitem value="#{pRPKUserNonItBean.header}" />
</p:breadCrumb>
<h:panelGrid id="TableInputId" columns="2" cellpadding="10" >
<h:panelGrid id="inputGridId1" columns="3" cellpadding="10" >
<p:outputLabel value="PRPK Type" for="prpktypeTxt" />
<p:selectOneMenu id="prpktypeTxt" value="#{pRPKUserNonItBean.prpkTypeTypeId}"
>
<p:ajax listener="#{pRPKUserNonItBean.updateButton}" update="formId"/>
<f:selectItem itemLabel="None Selected" itemValue=""
noSelectionOption="true" />
<f:selectItems value="#{pRPKUserNonItBean.prpkTypeIdMap}" />
</p:selectOneMenu>
<p:message for="prpktypeTxt" display="icon" />
<p:outputLabel value="PRPK Reference" for="prpkReferenceTxt" />
<h:panelGrid columns="2" cellpadding="0" border="0">
<p:inputText id="prpkReferenceTxt" disabled="true"
readonly="true" style="width:200; height:25"
value="#{pRPKUserNonItBean.prpkReference}" />
<p:commandButton icon="ui-icon-search"
action="#{pRPKUserNonItBean.showPRPKReferenceDialog}" rendered="#{pRPKUserNonItBean.prpkReferenceRendered}" process="@this">
<p:ajax event="dialogReturn" update="prpkReferenceTxt" />
</p:commandButton>
</h:panelGrid>
<p:message for="prpkReferenceTxt" display="icon"></p:message>
<p:outputLabel value="Description" for="descriptionTxt" />
<p:inputTextarea id="descriptionTxt" required="true" style="width:300; height:50"
value="#{pRPKUserNonItBean.prpkDesc}" />
<p:message for="descriptionTxt" display="icon"></p:message>
<p:outputLabel value="Memo" for="memoTxt"
style="display:block; width:100px;" />
<p:inputText id="memoTxt" required="true" style="width:225; height:25"
value="#{pRPKUserNonItBean.memoNumber}" />
<p:message for="memoTxt" display="icon"></p:message>
</h:panelGrid>
<h:panelGrid id="inputGridId2" columns="3" cellpadding="10" >
<p:outputLabel value="Priority Level" for="prioritylevelTxt" />
<p:selectOneMenu id="prioritylevelTxt" value="#{pRPKUserNonItBean.priorityTypeId}"
>
<f:selectItem itemLabel="None Selected" itemValue=""
noSelectionOption="true" />
<f:selectItems value="#{pRPKUserNonItBean.priorityIdMap}" />
</p:selectOneMenu>
<p:message for="prioritylevelTxt" display="icon" />
<p:outputLabel value="Department" for="departmentTxt" />
<p:selectOneMenu id="departmentTxt" value="#{pRPKUserNonItBean.departmentTypeId}"
>
<f:selectItem itemLabel="None Selected" itemValue=""
noSelectionOption="true" />
<f:selectItems value="#{pRPKUserNonItBean.departmentIdMap}" />
</p:selectOneMenu>
<p:message for="departmentTxt" display="icon" />
<p:outputLabel value="OPU" for="opuTxt" />
<p:selectOneMenu id="opuTxt" value="#{pRPKUserNonItBean.businessUnitTypeId}"
>
<f:selectItem itemLabel="None Selected" itemValue=""
noSelectionOption="true" />
<f:selectItems value="#{pRPKUserNonItBean.businessUnitIdMap}" />
</p:selectOneMenu>
<p:message for="opuTxt" display="icon" />
<p:row></p:row><p:row></p:row><p:row></p:row>
<p:row></p:row><p:row></p:row><p:row></p:row>
<p:row></p:row><p:row></p:row><p:row></p:row>
<p:row></p:row><p:row></p:row><p:row></p:row>
<p:row></p:row><p:row></p:row><p:row></p:row>
</h:panelGrid>
</h:panelGrid>
<p:outputLabel value="Target SD *" style="border:0;margin-top:10;margin-left:25;"/>
<h:panelGrid width="60%">
<p:commandButton value="Select Target SD"
action="#{pRPKUserNonItBean.showTargetSDDialog()}" immediate="true" >
<p:ajax event="dialogReturn" update="targetTable"/>
</p:commandButton>
<p:dataTable
paginatorPosition="bottom" rows="3" paginator="true"
rowsPerPageTemplate="10,15,25,50,100" rowIndexVar="rowIndex"
currentPageReportTemplate="Showing {startRecord}-{endRecord} out of {totalRecords}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
style="font-size:12px;"
var="group" widgetVar="targetTables" value="#{chooseTargetSDDialogBean.listGroupTemp}" id="targetTable">
<p:column headerText="No" width="5%">
<h:outputText value="#{rowIndex+1}" />
</p:column>
<p:column headerText="Target SD" width="40%">
<h:outputText value="#{group.name}" />
</p:column>
<p:column headerText="Description" width="45%">
<h:outputText value="#{group.description}" />
</p:column>
<p:column headerText="Delete" width="10%">
<center>
<p:commandButton icon="ui-icon-trash" action="#{chooseTargetSDDialogBean.deleteChooseGroupTargetSD(group)}" update="targetTable" immediate="true"/>
</center>
</p:column>
</p:dataTable>
</h:panelGrid>
<p:commandButton value="Cancel"
style="position: relative; bottom: -15px;" icon="ui-icon-circle-close"
process="@this" action="/prpk/master_prpk.xhtml?faces-redirect=true" />
<p:commandButton value="Next"
style="float:right; position: relative; bottom: -15px;" icon="ui-icon-arrow-1-e"
action="#{PRPKUserNonItBean.save}" process="@this">
<!-- <p:confirm header="Confirmation"
message="Are you sure the data correct ?" icon="ui-icon-alert" /> -->
</p:commandButton>
</h:form>
</ui:define>
и этот xhtml для второй страницы
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
template="/user_templates/template.xhtml">
<ui:define name="metadata">
</ui:define>
<ui:define name="content">
<h:form id="formId" style="margin-top:35;">
<p:contextMenu>
<p:menuitem value="© Indomaret" />
</p:contextMenu>
<p:breadCrumb>
<p:menuitem value="PRPK" />
<p:menuitem value="PRPK" />
<p:menuitem value="List PRPK" />
<p:menuitem value="Add New PRPK"
url="/prpk/prpk_new.xhtml?faces-redirect=true" />
<p:menuitem value="#{pRPKUserNonItBean.header}" />
</p:breadCrumb>
<h:panelGrid style="margin-left:5;margin-top:20;">
<h2>PIC PRPK *</h2>
</h:panelGrid>
<h:panelGrid style="margin-left:0;margin-bottom:20;margin-top:5;">
<p:commandButton value="Select PIC PRPK" icon="ui-icon-circle-plus"
action="#{pRPKUserNonItBean.showPicPRPKDialog}" immediate="true">
<p:ajax event="dialogReturn" update="roleTbl" />
</p:commandButton>
<p:dataTable var="prpk" id="roleTbl"
value="#{chooseNonITUserDialogBean.listUserTemp}">
<p:column headerText="Name">
<h:outputText value="#{prpk.name}" />
</p:column>
<p:column headerText="Department">
<h:outputText value="#{prpk.departmentName}" />
</p:column>
<p:column headerText="Head user">
<h:outputText value="#{prpk.headUserName}" />
</p:column>
<p:column headerText="Delete" width="10%">
<center>
<p:commandButton icon="ui-icon-trash"
action="#{chooseNonITUserDialogBean.deleteUser(prpk)}"
update="roleTbl"
immediate="true" />
</center>
</p:column>
</p:dataTable>
</h:panelGrid>
<h:panelGrid columns="3" cellpadding="5" style="margin-left:10;">
<p:outputLabel value="Request" for="requestTxt"
style="display:block; width:100px;" />
<p:inputTextarea id="requestTxt" required="true"
style="width:700; height:25" value="#{pRPKUserNonItBean.prpkRequest}" />
<p:message for="requestTxt" display="icon"></p:message>
<p:outputLabel value="Background" for="backgroundTxt" />
<p:inputTextarea id="backgroundTxt" style="width:700; height:25"
value="#{pRPKUserNonItBean.prpkBackground}" />
<p:message for="backgroundTxt" display="icon"></p:message>
<p:outputLabel value="Benefit Analysis" for="beNalTxt" />
<p:inputTextarea id="beNalTxt" style="width:700; height:25"
value="#{pRPKUserNonItBean.prpk_analysisBenefit}" />
<p:message for="beNalTxt" display="icon"></p:message>
</h:panelGrid>
<h:panelGrid columns="2" style="margin-left:120;">
<p:commandButton value="Back"
style="height:25; font-weight:bold; margin-left:5;"
icon="ui-icon-circle-close" process="@this"
action="/prpk/prpk_new.xhtml?faces-redirect=true" />
<p:commandButton id="submitBtn" value="#{pRPKUserNonItBean.buttonName}"
style=" font-weight:bold;margin-left:10;"
type="submit" icon="ui-icon-disk" action="#{pRPKUserNonItBean.saveEdit}"
update="formId" />
<p:defaultCommand target="submitBtn" />
</h:panelGrid>
<p:dialog modal="false" widgetVar="successDialog" header="Info"
closable="false">
<h:panelGrid columns="1" cellpadding="2">
<h:outputText value="Save data berhasil" />
<center>
<p:commandButton value="Ok"
action="/prpk/master_prpk.xhtml?faces-redirect=true"
onclick="PF('successDialog').hide()" />
</center>
</h:panelGrid>
</p:dialog>
<p:dialog modal="false" widgetVar="failedDialog" header="Info"
closable="false">
<h:panelGrid columns="1" cellpadding="2">
<h:outputText value="Save data failed" />
<center>
<p:commandButton value="Ok" action="#"
onclick="PF('failedDialog').hide()" />
</center>
</h:panelGrid>
</p:dialog>
</h:form>
</ui:define>