2015-07-20 101 views
0

如何在JSP中分配圖像src =字符串變量?

 
 
<% 
 
     String fn=session.getAttribute("fn").toString(); 
 
     fn="img/"+fn; 
 
%> 
 
    <tr> 
 
     <td width="20%" style="border-style: none; border-width: medium" height="17"> 
 
     </td> 
 
     <td width="20%" style="border-style: none; border-width: medium" height="17" bgcolor="#FFFFFF"> 
 
     </td> 
 
     <td width="20%" style="border-style: none; border-width: medium" height="17" bgcolor="#FFFFFF"> 
 
     <img border="0" src="<%=fn%>" width="90" height="90"></td> 
 
     <td width="20%" style="border-style: none; border-width: medium" height="17"> 
 
     </td> 
 
    </tr>

我基於在先前的JSP用戶輸入生成QR圖像和上面的JSP在顯示它。 QR生成在Eclipse(火星)動態web項目中工作正常。 Eclipse正在/ WebContent/img /文件夾中正確生成它。但是我無法使用上面的JSP顯示圖像。清除緩存,重新啓動Tomcat6,重新啓動eclipse和重新啓動筆記本電腦無法解決問題。我看到以下錯誤:

SEVERE: Error starting static Resources 
    java.lang.IllegalArgumentException: Document base /home/amruth/workspace2/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/Banking_With_OTP2 does not exist or is not a readable directory 
     at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:142) 
     at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4320) 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4489) 
     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
     at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
     at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
     at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:497) 
     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

    Jul 20, 2015 4:38:26 PM org.apache.catalina.core.StandardContext start 
    SEVERE: Error in resourceStart() 
    Jul 20, 2015 4:38:26 PM org.apache.catalina.core.StandardContext start 
    SEVERE: Error getConfigured 
    Jul 20, 2015 4:38:26 PM org.apache.catalina.core.StandardContext start 
    SEVERE: Context [/Banking_With_OTP2] startup failed due to previous errors 
    Jul 20, 2015 4:38:26 PM org.apache.catalina.core.StandardContext stop 
    INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Banking_With_OTP2] has not been started 
    Jul 20, 2015 4:38:26 PM org.apache.catalina.core.StandardContext resourcesStart 
    SEVERE: Error starting static Resources 
    java.lang.IllegalArgumentException: Document base /home/amruth/workspace2/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/temp does not exist or is not a readable directory 
     at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:142) 
     at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4320) 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4489) 
     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
     at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
     at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
     at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:497) 
     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

回答

0

這個問題在eclipse中一直存在。於是我提取了該項目的.war文件,並直接在Appache Tomcat中運行它。然後運行良好,沒有任何問題。這是一個很好的實用解決方案。

0

您尚未將格式添加到圖像路徑字符串。 您的jsp代碼應該是:

<% 
    String fn=session.getAttribute("fn").toString(); 
    fn="img/"+fn+".jpg"; 
%> 
相關問題