RichFaces 3.0, рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЕрдкрд▓реЛрдб, jQuery рдФрд░ Crutches



рдирдорд╕реНрдХрд╛рд░, рдкреНрд░рд┐рдп рдкрд╛рдардХ! рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдЖрдИ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд╕рд╛рде рд╣реА рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреАред рдмреЗрд╢рдХ, рд╕рдорд╛рдзрд╛рди рд╕рдмрд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рд╣реИред рдпрджрд┐ рдЖрдк рдХреБрдЫ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рд╕рдорд╛рдзрд╛рди рдХреЛ рдмреЗрд╣рддрд░ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрд╕реЗ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдмрдбрд╝реЗ рдЦреАрд░реЗ рд╕реЗ рдордд рд╣рд░рд╛рдПрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрднреА рднреА рдЫреЛрдЯрд╛ рдФрд░ рд╣рд░рд╛ рд╣реВрдВред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рд╢рд┐рдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЫреЛрдЯреЛрдВ рдХреЛ рдорд╛рд░реЛред

рдХрд╛рд░реНрдп рдпрд╣ рд╣реИ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рд╣реИ рдЬрд┐рд╕ рдкрд░ рдХреБрдЫ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред рд╡рд╣рд╛рдВ рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЧрдарди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдкреГрд╖реНрда рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдКрдкрд░реА рдЫрд╡рд┐ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реБрд╡рд┐рдзрд╛ рдпрд╣ рд╣реИ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд░рд┐рдХреЙрд░реНрдб рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдФрд░ рдЬрдм рдЖрдк рдПрдХ рд▓рд╛рдЗрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдирд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓:
public void generatePatientsExcel() { try{ log.info("Generating patients excel"); FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getExternalContext(); HttpServletResponse response = (HttpServletResponse) externalContext.getResponse(); //Create excel file Workbook wb = new HSSFWorkbook(); // // // // // // Header response.setHeader("Content-disposition", "attachment; filename=1.xls"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setCharacterEncoding("UTF-8"); response.setContentType("application/vnd.ms-excel"); //Send Response ServletOutputStream responseOutputStream = response.getOutputStream(); wb.write(responseOutputStream); responseOutputStream.flush(); responseOutputStream.close(); facesContext.responseComplete(); log.info("Generating patients excel comlplete"); } catch (Exception ex) { ex.printStackTrace(); } } 

рдЦреИрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИ


рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдЧрдарди рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЙрд╕ рдХреНрд╖рдг рдореЗрдВ рдЖрдк рд▓рд╛рдЗрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛:
 org.jboss.seam.ConcurrentRequestTimeoutException: Concurrent call to conversation 


рдЗрд╕реЗ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓реЛрдбрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдСрдирдХреНрд▓рд┐рдХ рдХреЛ рд▓рдЯрдХрд╛ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдЫрд┐рдкрд╛рдПрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рднреА рдЕрдзреВрд░рд╛ рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд╣реИ рдирд╛?

рдиреБрдХрд╕рд╛рди


рдЪреВрдВрдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬрддреЗ рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдХрд┐ HttpServletResponse рдирд╣реАрдВ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рдд рд╣реИ, рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЬрд╣рд╛рдВ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣, рдмрджрд▓реЗ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЧрддрд┐рд╢реАрд▓ рдЧрдарди рд╡рд╣ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред

рдкрдХрдбрд╝ рдпрд╣ рд╣реИ рдХрд┐ h: рдХрдорд╛рдВрдбрдмрдЯрди рдмрдЯрди рдореЗрдВ рдЕрдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рднреА "h:" рддрддреНрд╡реЛрдВ рдореЗрдВ рдпрд╣ рдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдХрд░: тАЬрд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдореЗрдВ рдЗрд╕ h рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ: рдХрдорд╛рдВрдбрдмрдЯрди? рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЬрд╛рджреБрдИ a4j: рдХрдорд╛рдВрдбрдмрдЯрди рд╣реИред "

рд╣рдо a4j рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВрдЧреЗ: рдХрдорд╛рдВрдбрдмрдЯрди, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 <a4j:commandButton onclick="showLoader();" image="exportExcel.png" action="#{importToExcelBean.getExcelFile()}" oncomplete="hideLoader();"/> 


рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╣реИред рдЪреВрдВрдХрд┐ a4j: рдХрдорд╛рдВрдбрдмрдЯрди рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдореЗрдВ HttpServletResponse рдХреЛ рдЕрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХреНрд╕реЗрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЙрддрд╛рд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд╣ рдореИрд▓рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреГрд╖реНрда рдЦреЛрд▓рддрд╛ рд╣реИред "рд╡рд┐рдХрд╛рд░," рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдХрд╣рд╛, рдХреАрдмреЛрд░реНрдб рдХреЛ рдЫрд┐рджреНрд░рдг, рд╢рдкрде рдЧреНрд░рд╣рдгред рдФрд░ рдЬреАрд╡рди рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдирд┐рд░рд╛рд╢ред

рдЖрдк a4j hing: h рдкрд░ рд╕рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдХрдорд╛рдВрдбрдмрдЯрди, рдЬреЛ рдСрдирд╕реБрдмрдорд┐рдЯ рдкрд░ рд▓реЛрдбрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛, рдПрдХреНрд╢рди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдЧрд╛, рдФрд░ рдПрдХ рд▓реЛрдбрд░ рдХреЛ рдЕрдкреВрд░реНрдг рдкрд░ рдЫрд┐рдкрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ a4j: рд╕рдорд░реНрдерди рд╕рд░реНрд╡рд░ рд╕реЗ HttpServletResponse рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рд╡рд╣ рдкреГрд╖реНрда рдореЗрдВ рднреА рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рднреА a4j рддрддреНрд╡ рдкреГрд╖реНрда рдкрд░ рдПрдХ HttpServletResponse рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред

рдмреБрд░реА рдХрд┐рд╕реНрдордд рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдЗрдВрдЯрд░рдиреЗрдЯ рдЪреБрдк рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реЛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЦреБрдж рдХреБрдЯрд┐рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдмреИрдареЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдШрдЯрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдиреА рдХрдореА рд╣реИред

рд╕рдорд╛рдзрд╛рди, рдмреИрд╕рд╛рдЦреА рдФрд░ jQuery


рдирд┐рд░реНрдгрдп рдПрдХ рд╕рд╣рдХрд░реНрдореА рдХреЗ рд▓рд┐рдП рд╣реБрдЖред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
  1. рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЛ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ: рдкреАрдврд╝реА рдФрд░ рдЕрдиреБрд░реЛрдз рдХреА рд╡рд╛рдкрд╕реАред
  2. рд╣рдо a4j рдмрдирд╛рддреЗ рд╣реИрдВ: рдХрдорд╛рдВрдбрдмрдЯрди, рдЬреЛ рдлрд╛рдЗрд▓ рдХреЛ рдмрд┐рдирд╛ рд▓реМрдЯрд╛рдП рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд▓реЛрдбрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЫрд┐рдкрд╛рддрд╛ рд╣реИред

     <a4j:commandButton onclick="showLoader();" image="exportExcel.png" action="#{importToExcelBean.generateExcel()}" oncomplete="hideLoader()"/> 
  3. рд╣рдо рдПрдХ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдПрдЪ рдмрдирд╛рддреЗ рд╣реИрдВ: рдХрдорд╛рдВрдбрдмрдЯрди, рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдЧреЗ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдИрдбреА рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

     <h:commandButton id="exelFileButton" style=" visibility: hidden;" action="#{importToExcelBean.returnResponse()}" /> 
  4. рд╣рдо рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЫрд┐рдкреЗ рд╣реБрдП h рдХреЛ рдвреВрдБрдврддрд╛ рд╣реИ: id рджреНрд╡рд╛рд░рд╛ рдХрдорд╛рдВрдбрдмрдЯрди рдФрд░ рдЗрд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИред

     <script type="text/javascript" > function clickButtonGetExelFile(){jQuery("#exelFileButton").click();} </script> 

  5. рд╣рдо рд▓реЛрдбрд░ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдкрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВред

     <a4j:commandButton onclick="showLoader();" image="exportExcel.png" action="#{importToExcelBean.generatePatientsExcel()}" oncomplete="hideLoader();clickButtonGetExelFile();"/> 



рд╣реЛ рдЧрдпрд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрд╕ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред

рдЫрд╡рд┐

Source: https://habr.com/ru/post/In146474/


All Articles