2016-01-08 5 views
0

Я хочу сохранить все изображения своего веб-сайта на вторичном файловом сервере, чтобы уменьшить нагрузку на базу и основной сервер (в конечном итоге будет огромное количество файлов изображений и браузер делает совершенно отдельный запрос на загрузку изображений, поэтому я решил, что у меня также может быть отдельный файловый сервер).Перенаправление на второй сервер не использует его faces-config

У меня есть стандартная ссылка для пересылки пользователям файлового сервера, чтобы они могли загружать файлы изображений для продуктов, однако, похоже, он не использует файл-файл с файловым сервером.

На странице JSF на главном сервере:

<a target="_blank" href="http://localhost:12631/FileServer/faces/ExternalSecure/ForwardUploadImagesProcessing.xhtml#{newEditProductBean.uploadPicviewfParamValues}" >Upload replacement image(s) for storage on #{authBackingBean.demoCompany}'s servers</a> 

страница переадресации 'ForwardUploadImagesProcessing.xhtml' на файловый сервер выглядит следующим образом:

 <?xml version='1.0' encoding='UTF-8' ?> 
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     <html xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:f="http://java.sun.com/jsf/core"> 

      <head> 
       <title>redirect</title> 
      </head> 
      <body> 
       <f:metadata> 
        <f:viewParam name="path" value="#{uploadImages.path}" /> 
        <f:viewParam name="filename" value="#{uploadImages.fileName}" /> 
        <f:viewParam name="productTypeName" value="#{uploadImages.productTypeName}" /> 
        <f:viewParam name="productModel" value="#{uploadImages.productModel}" /> 

        <f:event type="preRenderView" listener="#{uploadImages.processUploadEntityImages()}" /> 
       </f:metadata>   
      </body> 
     </html> 

'The processUploadEntityImages()' метод в bean-компоненте «UploadImages» (см. ниже) вызывается как ожидалось, и оператор System.out корректно печатает все переданные значения f: viewParam, однако строка навигации JSF «process_UploadImages» не загружает страницу, на которую она указывает файловый сервер. Как я могу заставить его переключиться на файловый сервер, и это face-config?

В вспомогательном компоненте 'UploadImages' на файловом сервере:

public String processUploadEntityImages() 
{ 
    System.out.println("processUploadEntityImages() " + path + " ; " + fileName + " ; " + productTypeName + " ; " + productModel); 

    return "process_UploadImages"; 
} 

В 'граней-конфигурации' файловый сервер:

<navigation-rule> 
    <navigation-case> 
     <from-outcome>process_UploadImages</from-outcome> 
     <to-view-id>/ExternalSecure/UploadImages.xhtml</to-view-id> 
    </navigation-case> 
</navigation-rule> 
<managed-bean> 
    <description>For uploading thumb and main images for entities. </description> 
    <managed-bean-name>uploadImages</managed-bean-name> 
    <managed-bean-class>processing.UploadImages</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
</managed-bean> 

В web.xml на файл сервер:

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 

у меня есть ссылка на индексной странице файлового сервера, ссылки на этой странице и странице «UploadImages.xhtml» правильно открывается с помощью правила навигации «process_UploadImages», поэтому проблем нет.

Заранее спасибо.

ответ

0

Я должен был знать это; Я использовал его раньше для перенаправления на страницу JSF по ссылке внутри электронной почты ....

processUploadEntityImages() должен выглядеть следующим образом:

public void processUploadEntityImages() 
{ 
    System.out.println("processUploadEntityImages() " + path + " ; " + fileName + " ; " + productTypeName + " ; " + productModel); 

    FacesContext facesContext = FacesContext.getCurrentInstance(); 
    NavigationHandler navigationHandler = facesContext.getApplication().getNavigationHandler(); 
    navigationHandler.handleNavigation(facesContext, null, "process_UploadImages"); 
} 
Смежные вопросы