我正在尝试在jsp页面上显示图像。 我正在使用spring security / mvc开发。
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>
当我运行图像时不显示。 我尝试了很多建议,但没有一个有效,我也尝试了相对和绝对的路径。
答案 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>