无法在jsp页面上显示图像

时间:2016-05-06 11:55:03

标签: java spring jsp path

我正在尝试在jsp页面上显示图像。 我正在使用spring security / mvc开发。

Here's the folder structure 这是jsp页面的一部分:

public class NestedGUI extends Application {
    Model model = new Model();

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Parent root = null;
        try {
            FXMLLoader fxmlLoader = new FXMLLoader();
            fxmlLoader.setLocation(getClass().getClassLoader().getResource("Main.fxml"));

            fxmlLoader.setControllerFactory((Class<?> type) -> {
                try {
                    for (Constructor<?> c : type.getConstructors()) {
                        if (c.getParameterCount() == 1 && c.getParameterTypes()[0] == Model.class) {
                            return c.newInstance(model);
                        }
                    }
                    // default behavior: invoke no-arg constructor:
                    return type.newInstance();
                } catch (Exception exc) {
                    throw new RuntimeException(exc);
                }
            });

            root = (BorderPane) fxmlLoader.load();


        } catch (IOException e) {
            e.printStackTrace();
        }

        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }
}

这是配置:

<a href="/images/logo.png">
<img src="/images/logo.png" alt="logo">
</a>

当我运行图像时不显示。 我尝试了很多建议,但没有一个有效,我也尝试了相对和绝对的路径。

3 个答案:

答案 0 :(得分:1)

问题是您的文件结构。 使用CTRL + SHIFT + I(在Mozilla或Chrome中)打开开发人员工具并检查图像元素。当然,链接被破坏意味着您试图从错误的位置(或不存在的位置)获取图像。

使用上下文路径:

<img src="${pageContext.request.contextPath}/images/logo.png"/> 

答案 1 :(得分:1)

根据您的配置,您的图片应位于子文件夹images / logo.png中的网络应用程序的根目录中。您的img标记应包含servlet上下文根。您应该使用jsp核心标记库

附加上下文根
<c:url value="/images/logo.png" var="logo"/>
<a href="${logoUrl}">
<img src="${logoUrl}" alt="logo">
</a>

NB。附加上下文的方法取决于渲染技术。如果您使用纯HTML,则可以手动附加上下文根。然而,这会对价值进行硬编码并且是一种维护噩梦,因为当您需要更改上下文时需要更改每个页面中的值

<a href="/myapp/images/logo.png">
<img src="/myapp/images/logo.png" alt="logo">
</a>

答案 2 :(得分:1)

尝试使用图片的相对路径:

<a href="../../images/logo.png">
   <img src="../../images/logo.png" alt="logo">
</a>