前面的一篇,提到用displaytag代替Jsf的datatble,其实不行,因为displaytag在排序和分页的时候采用get方式提交,jsf的jsf_state表单超长,不能用get方式提交。extrememtable用post方式提交,可以完成任务。但是,extremetable在导出Execl的时候 使用了ServletResposneWrapper,而Jsf(至少Myfaces)也使用了这个类,两者会冲突,所以你必须重写extremetable的ExcelView(好像是这个名字)类,使用ServletResposneWrapper的getResponse方法获取没有wrap的HttpServletResponse对象。具体方法忘了,回头贴代码。
可惜Jsf了,什么UI都有,就是没有导出Excel的。
另外Jsf的UI 组件由于开发者众多(光Myfaces就3套),所以学习起来十分费时,并且这些UI都比较难以扩展(我想导出DataTable的数据,可是...),所以暂时忍痛放弃JSF而选用webwork2.2。
Webwork2.2支持Ajax、Portlet等特性,而且也提供了一些UI Tag,应该不比Jsf差。可惜WW缺乏好的IDE,只有一个没用的EclipseWork...
为什么选一个MVC Framework这么难呢,看人家spring...