gpt4 book ai didi

java - 将外部文件夹挂载为 Wicket 中的资源

转载 作者:搜寻专家 更新时间:2023-11-01 03:10:08 24 4
gpt4 key购买 nike

我想要完成的是将 css 文件中的一些图像引用放置在与实际应用程序分开的文件夹中。

是否可以将外部文件夹挂载为 Wicket 中的资源?

在伪代码中,这就是我想要做的:

public class Application extends WicketApplication
{
init()
{
mountResource(new FolderResource("Path/to/some/folder", "someid"));
}
}

这样 .css 类将像这样引用资源:

.someclass
{
url("resources/someid/images/image.png")
}

我确定我在某个地方见过这个,但我似乎无法再次找到它......

编辑还应该注意我目前在 Wicket 1.4 上运行

最佳答案

简单如下。

我的应用程序.java:

public class MyApplication extends WebApplication {
...
public void init() {
...
final String resourceId = "images";
getSharedResources().add(resourceId, new FolderResource(new File(getServletContext().getRealPath("img"))));
mountSharedResource("/image", Application.class.getName() + "/" + resourceId);
}
...
}

文件夹资源.java:

public class FolderResource extends WebResource {

private File folder;

public FolderResource(File folder) {
this.folder = folder;
}

@Override
public IResourceStream getResourceStream() {
String fileName = getParameters().getString("file");
File file = new File(folder, fileName);
return new FileResourceStream(file);
}
}

然后您可以通过简单的 URL 从应用程序中的“img”文件夹中获取任何图像:

/your-application/app/image?file=any-image.png

这里的“/your-application”是应用上下文路径,“/app”是web.xml中的Wicket servlet映射,“any-image.png”是图片文件名。

关于java - 将外部文件夹挂载为 Wicket 中的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com