Java 如何缩短在DSpace中显示的文件名
我想缩短“简单项目”视图中显示的文件名 如果我有一个很长的文件名,它将显示在简单项目记录中: 如果查看完整项目记录,则此示例文件名会缩短: 但是,如果编辑此项目并单击项目位流选项卡,则文件名如下所示:Java 如何缩短在DSpace中显示的文件名,java,xslt-1.0,dspace,Java,Xslt 1.0,Dspace,我想缩短“简单项目”视图中显示的文件名 如果我有一个很长的文件名,它将显示在简单项目记录中: 如果查看完整项目记录,则此示例文件名会缩短: 但是,如果编辑此项目并单击项目位流选项卡,则文件名如下所示: <xsl:value-of select="util:shortenFileName(mets:FLocat[@LOCTYPE='URL']/@xlink:title, ' … ', 20)" /> 我的目标是将编辑比特流(第三张图片)中显示的内容应用于简单
<xsl:value-of select="util:shortenFileName(mets:FLocat[@LOCTYPE='URL']/@xlink:title, ' … ', 20)" />
我的目标是将编辑比特流(第三张图片)中显示的内容应用于简单和完整的项目视图。我不知道这个转换是在哪里产生的。我查看了administration.xsl,没有找到任何关于文件名缩短的内容。请提供有关如何实现此转换或在何处查找此转换的建议。在“项位流”选项卡中重写文件名是在Java代码中完成的,而不是在XSL中完成的。在这里: 您的项目页面截图看起来像是在使用XMLUI/Mirage 2,对吗?最好使用
org.dspace.app.xmlui.utils.XSLUtils
()中的shortenString
方法。实际上,也许您没有使用幻影2,因为幻影2正是这样做的,请参见:
谢谢您的回答。这是我的代码和我如何使用它
我在org.dspace.app.xmlui.utils.XSLUtils
public static String shortenFileName(String string, String middle, int targetLength) {
targetLength = Math.abs(targetLength);
if (string != null && string.length() > targetLength) {
// If the file name is too long then shorten it so that it will display nicely.
return StringUtils.abbreviateMiddle(string, middle, targetLength);
}
else
return string;
}
然后在item view.xsl
中使用它,如下所示:
<xsl:value-of select="util:shortenFileName(mets:FLocat[@LOCTYPE='URL']/@xlink:title, ' … ', 20)" />
文件名现在如下所示:
<xsl:value-of select="util:shortenFileName(mets:FLocat[@LOCTYPE='URL']/@xlink:title, ' … ', 20)" />
屏幕截图来自《幻影2》。完整项目记录视图中使用了
util:shortenString
if I'm not error(如果我没有错)(与第二个屏幕截图相同)?我想在字符串中间插入一个省略号,而不是在结尾II<代码>。获取文件名。pdf。感谢您给我指出EditItemBitstreamsForm.java
,但我不知道如何在xslt中移植该代码。更不用说Andrea了,我想我已经解决了。再次感谢哦,对不起,是的,你写的是你想把它放在中间,我错过了。你的解决方案看起来很棒!