1

私はprimefaces p:galleriaを使用していくつかの画像を表示していますが、何も表示されていません.

                <p:galleria value="#{galleriaBean.images}" 
                            var="image" 
                            effect="slide" 
                            effectSpeed="1000"
                            panelWidth="500" 
                            panelHeight="313" 
                            showCaption="false">  

                    <p:graphicImage value="/resources/Tutorial/#{image}" 
                                    alt="Image Description for #{image}" 
                                    title="#{image}"/>  
                </p:galleria> 

GalleriaBean.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package richard.fileupload;

import java.util.ArrayList;  
import java.util.List;  
import javax.annotation.PostConstruct; 
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
/**
 *
 * @author Richard
 */

@ManagedBean(name="galleriaBean")
//@RequestScoped
@ViewScoped

public class GalleriaBean {  

    public static List<String> images;  


    @PostConstruct  
    public void init() {  
        System.out.println("init called");
        images = new ArrayList<String>();  

        for(int i=1;i<=25;i++) {  
            images.add("/resources/Tutorial"+i+".jpg");
        }  
    }  

    public List<String> getImages() {  
        return images;  
    }

}

画像は /resources/Tutorial に保存されています

私は何を間違っていますか?私はprimefacesの例を見てきましたが、私のものは似ていますが、実行しても何も表示されません:(

私は今、この大量のエラーを受け取ります:

INFO: init called

    WARNING: Setting non-serializable attribute value into ViewMap: (key: galleriaBean, value class: richard.fileupload.GalleriaBean)
    SEVERE: Error Rendering Vi

ew[/GUI/tutorial.xhtml]
    java.lang.IllegalStateException: PWC3999: Cannot create a session after the response has been committed
        at org.apache.catalina.connector.Request.doGetSession(Request.java:2886)
        at org.apache.catalina.connector.Request.getSession(Request.java:2583)
        at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:920)
        at com.sun.faces.context.ExternalContextImpl.getSession(ExternalContextImpl.java:155)
        at com.sun.faces.renderkit.ServerSideStateHelper.writeState(ServerSideStateHelper.java:175)
        at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122)
        at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:166)
        at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
        at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:419)
        at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
        at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
        at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
        at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
        at java.lang.Thread.run(Thread.java:722)

    INFO: Exception when handling error trying to reset the response.
    java.lang.IllegalStateException: PWC3999: Cannot create a session after the response has been committed
        at org.apache.catalina.connector.Request.doGetSession(Request.java:2886)
        at org.apache.catalina.connector.Request.getSession(Request.java:2583)
        at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:920)
        at com.sun.faces.context.ExternalContextImpl.getSession(ExternalContextImpl.java:155)
        at com.sun.faces.renderkit.ServerSideStateHelper.writeState(ServerSideStateHelper.java:175)
        at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122)
        at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:166)
        at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
        at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:419)
        at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
        at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
        at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
        at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
        at java.lang.Thread.run(Thread.java:722)

    WARNING: JSF1087: Unable to generate Facelets error page as the response has already been committed.
    SEVERE: javax.faces.FacesException: PWC3999: Cannot create a session after the response has been committed
    javax.faces.FacesException: PWC3999: Cannot create a session after the response has been committed
        at com.sun.faces.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:142)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
        at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
        at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
        at java.lang.Thread.run(Thread.java:722)
    Caused by: java.lang.IllegalStateException: PWC3999: Cannot create a session after the response has been committed
        at org.apache.catalina.connector.Request.doGetSession(Request.java:2886)
        at org.apache.catalina.connector.Request.getSession(Request.java:2583)
        at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:920)
        at com.sun.faces.context.ExternalContextImpl.getSession(ExternalContextImpl.java:155)
        at com.sun.faces.renderkit.ServerSideStateHelper.writeState(ServerSideStateHelper.java:175)
        at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122)
        at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:166)
        at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
        at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:419)
        at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
        at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        ... 31 more

しかし、initは呼び出されます:D

編集:今ではエラーを1つに減らしました:

WARNING: Setting non-serializable attribute value into ViewMap: (key: galleriaBean, value class: richard.fileupload.GalleriaBean)

現在のコード:現在エラーは発生していませんが、何も表示されていません

  /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package richard.fileupload;

import java.io.Serializable;
import java.util.ArrayList;  
import java.util.List;  
import javax.annotation.PostConstruct; 
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
/**
 *
 * @author Richard
 */

@ManagedBean(name="galleriaBean")
//@RequestScoped
@ViewScoped

public class GalleriaBean implements Serializable {  

    public static List<String> images;  


    @PostConstruct  
    public void init() {  
        FacesContext.getCurrentInstance().getExternalContext().getSession(true);
        System.out.println("init called"); //testing to see if it called, currently causing a lot of errors
        images = new ArrayList<String>();  

        for(int i=1;i<=3;i++) {  
             System.out.println("loop called"); //testing to see if it called, currently causing a lot of errors
            images.add("/resources/Tutorial/"+ i +".jpeg");
        }  
    }  

    public List<String> getImages() {  
        System.out.println("getImages called"); //testing to see if it called, currently causing a lot of errors
        return images;  
    }

}

コンソール:

INFO: init called
INFO: loop called
INFO: loop called
INFO: loop called
INFO: getImages called

すべてが呼び出されますが、まだ何も表示されません

編集 :

助けてくれてありがとう、私はあなたが提案したようにファイルの場所を変更し、クロムでコンソールをチェックしました。あなたは正しいです.404が見つかりませんというエラーが表示されますが、あなたの場所に変更した後でもこれを取得します.

私のファイルディレクトリは

WebContent
 |-- META-INF
 |-- WEB-INF
 |-- GUI
 |    `-- tutorial.xhtml (page calling the images)
 |-- resources
 |    `-- Tutorial
 |         |-- Tutorial1.jpg
 |         |-- Tutorial2.jpg
 |         |-- Tutorial3.jpg
 |         :   :
 |

ただし、クロムコンソールを使用して、画像を見つけようとしているのを見ることができます/fileuploadWithPreview//GUI/Tutorial/Tutorialが、それらはに保存されていますresources/tutorial/

新しい質問は、xhtml ファイルがある GUI フォルダーの外にあるリソース フォルダーを呼び出す方法です。

4

1 に答える 1

4

画像の URL は、少なくとも非常に奇妙です。

ここ、

for(int i=1;i<=25;i++) {  
    images.add("/resources/Tutorial"+i+".jpg");
}

完全な Web コンテンツ相対 URL を指定しています。

そしてここ、

<p:graphicImage value="/resources/Tutorial/#{image}" ... />

画像の URL が に対して相対的であると想定しています/resources/Tutorial

したがって、画像のURLは最終的に次のようになります

/resources/Tutorial/resources/Tutorial1.jpg

2回/resources?これは正しくないようです。Web ブラウザーの開発者ツールセット (Chrome/IE9/Firebug で F12 キーを押す) で HTTP トラフィックに注意を払っていた場合、ブラウザーがこれらすべての画像で 404 Page Not Found エラーを受け取っていることに気付いたはずです。srcまた、生成された HTML要素に注意を払っていれば<img>、何かがおかしいことに気付くはずです。

フォルダにTutorial[n].jpg画像があると仮定すると、/resources/Tutorial

WebContent
 |-- META-INF
 |-- WEB-INF
 |-- resources
 |    `-- Tutorial
 |         |-- Tutorial1.jpg
 |         |-- Tutorial2.jpg
 |         |-- Tutorial3.jpg
 |         :   :
 |
 `-- page.xhtml

次に、次のようにイメージ ファイル名を準備する必要があります。

for(int i=1;i<=25;i++) {  
    images.add("Tutorial"+i+".jpg");
}

そして、次のようにそれらを参照します (注:nameではなくvalue!)

<p:graphicImage name="Tutorial/#{image}" ... />

PWC3999 例外に関しては、それはまったく別の問題に関係しています。解決方法については、「<h:form> を追加すると java.lang.IllegalStateException: Cannot create a session after the response has been committed 」を参照してください。つまり、Mojarra をアップグレードするだけです。

シリアル化できない属性の警告については、言及されたクラスに実装させてSerializableください。

于 2013-02-03T20:26:04.963 に答える