jstl / jsp打印文件名很漂亮

时间:2013-12-26 23:00:07

标签: spring jsp spring-mvc jstl

我在jsp文件中有我的标签${file.name},以显示要下载的文件名

name包含完整的文件名,包含文件扩展名。例如

  

testfile.png

     

a-file.zip

     

testfile的-test505454654.png

     

A-filenum5468.docx

     

other_file_with_a_name_very_very_very_larrrrrrrrrrrrrrrrrrrrrge.pdf

名称很长的文件会导致布局崩溃。

我认为格式化文件名以缩短它但包含扩展名的方法。也许

  

testfile.png

     

a-file.zip

     

testfile-test505454 .... png *

     

A-filenum5468.docx

     

other_file_with_a_na .... pdf *

我该怎么做?

在href中没问题,因为它是由id ${file.id}

完成的

3 个答案:

答案 0 :(得分:2)

如果file是POJO,您可以向POJO(类似String getShortName(){})添加一个getter方法,返回文件名的简短版本。然后在EL表达式中使用该方法:${file.shortName}

答案 1 :(得分:1)

我会编写并注册一个自定义标记,用于将输出缩短到最大长度

<custom:short value="${file.name}" var="shortFileName" />

标签将根据您在元素中指定的默认值或值来处理缩短,并将结果放在请求属性中,您可以在声明后的任何位置使用该属性。

答案 2 :(得分:1)

由于要求可以多次使用,所以您应该使用像@Sotirios Delimanolis建议的CUSTOM标签解决方案。

JSTL函数(如c:fn)是另一种解决方案。使用jstl函数比Custom标签(简单/经典模型)获得更好的性能

链接:http://www.noppanit.com/how-to-create-a-custom-function-for-jstl/