方法1:在<display:column>中使用属性autolink="true",不过这条属性只对两种情况起作用:网址和邮箱,如果只是普通字符串,那么还是普通字符串,不会变成超链接
          网址必须是以http://开头的,而不是直接写www.baidu.com。邮箱就是完整的邮箱名
方法2:在<display:column>中使用url属性或者href属性,两者区别是:url是主机名/项目名/url,而href是主机名/href。也就是少了项目名。
          同时还有几个配置属性:(缺点是参数值必须使用bean的属性,而不能是字符串直接量,并且属性名不能有错,而且只能配置一个参数,这个限制太要命了)
          paramId: 就是参数名称,后台根据它来getParameter()
          paramProperty: 就是参数值,不过不是字符串直接量,而是bean的属性名,也就是表格的列名
          paramName: 默认值是null,就是当前bean,没试过指向其他bean......一般也用不到吧
          paramScope: 默认值是null,还是指当前bean,没试过指向其他bean......一般也用不到吧
方法3:使用Decorate装饰模式,具体又分为两种情况:
          情况一:继承org.displaytag.decorator.TableDecorator父类
                     继承父类之后我们没有必须要实现的父类方法,但是我们获得了一个父类提供的方法:getCurrentRowObject()
                     显然该方法返回当前行的bean对象。接下来我们要做的就是提供getXXX()方法,这个get方法后的值一般与bean的属性名对应
                     虽然不要求与属性名一样,但是在jsp页面中使用的时候,<display:column property="XXX">这个property属性就需要与我们实现的getXXX方法一致
                     最好就是与属性名一样,这样不至于弄错
                     在jsp页面中使用的时候,将我们的类全名给table的decorator属性,也就是包括包名和类名赋值给<display:table>的decorator属性

 public String getSchool() {
Student s = (Student)getCurrentRowObject();
String school = s.getSchool();
//注意:下面的超链接中href必须以 http:// 开始,否则就变成 主机名+项目名+url了,就不是跨域跳转了
return "<a href='http://www.baidu.com?action=" + school + "' target='_blank'>" + school + "</a>";
}

情况二:实现org.displaytag.decorator.ColumnDecorator接口
                     实现decorate方法,返回字符串,该字符串就是该列的值,该方法的参数就是没有被装饰过的原始值
                     我们要做的就是对原始值进行装饰,返回我们希望的结果,一般我们会返回一个超链接,来实现譬如增加,删除的操作
                     在jsp页面中使用的时候,将我们的类全名给column的decorator属性,也就是包括包名和类名赋值给<display:column>的decorator属性

 public String decorate(Object arg0) throws DecoratorException {
return arg0 + " be decorated!";
}

总结:方法一最简单,但是基本上用处不大,因为网页上一般不会直接显示网址和邮箱地址,一般应该会显示网址名称或者邮箱名等。(邮箱地址还是可能会出现。。。)
        方法二最大的缺点就是只能提供一个参数,而且还不能是一个字符串常量,必须是一个bean的属性值
        方法三最强大,其中情况一优于情况二:
                因为对于情况一,每个bean只需要一个类就搞定了,对于每个属性提供一个getXXX()方法即可,而情况二对于每一个属性都需要提供一个类了,
                好像也不会对每一个属性进行装饰。。。
                主要是因为ColumnDecorator接口已经快被舍弃了,现在应该使用DisplaytagColumnDecorator接口了

最新文章

  1. 流程控制和循环.png
  2. JS函数节流
  3. apache和nginx开启https
  4. Jenkins 六: 构建中执行shell或者 windows的批处理程序
  5. .net通用权限框架C/S概览
  6. Mac删除废纸篓中的单一文件和文件夹
  7. java 子类继承父类成员变量的隐藏、实现方法的重写
  8. Word字体与像素的对应关系(转)
  9. mac重开电脑后显示重装提示解决办法
  10. python---os模块使用详解
  11. 【MySQL】MySQL的执行计划及索引优化
  12. QComboBox使用方法,QComboBox详解
  13. 如何关闭windows server2012 80端口
  14. jq源码解析之绑在$,jQuery上面的方法
  15. poj 2429 GCD &amp;amp; LCM Inverse 【java】+【数学】
  16. Android-进程理解/进程的优先级别
  17. 服务器端渲染VS浏览器端渲染
  18. python 解决url编译
  19. U深度U盘启动盘制作工具怎么用?U深度U盘启动盘制作工具使用教学
  20. ConcurrentHashMap的使用和原理

热门文章

  1. HDU 4614 (13年多校第二场1004)裸线段树
  2. 3.3.2 嵌入汇编(摘自&lt;linux内核完全剖析&gt;)
  3. 逆天的IE7中,绝对定位元素之间的遮盖问题
  4. getAttribute:取得属性; setAttribute:设置属性。
  5. Python中的正斜杠与反斜杠
  6. NSSet和NSMutableSet 确保数据的唯一性--备
  7. 复杂事件处理引擎—Esper入门(第二弹)
  8. Ubuntu12.04 下安装Chrome浏览器
  9. 委托 delegate, 继承
  10. 如何在tomcat启动的时候运行一个Java类