如何在struts 2中的JSP中访问display标签内的请求属性

时间:2015-08-04 07:09:29

标签: java jsp struts2 displaytag

我在我的动作类中设置了一个arraylist,如下所示

    public class Student {

        public String execute()  {

        List students_list = new ArrayList(); 

        //business service that fetches students 
        students_list = studentService.getStudents(); 

        request.setAttribute("StudentList", students_list);

        return "listStudents";
     } 
}

在我的jsp中,我正在访问它,如下所示

<%@ taglib prefix="s" uri="/struts-tags"%>

<%@ taglib uri="/WEB-INF/displaytag-12.tld" prefix="display" %>

    <display:table uid= "studentTable" name="%{#request.StudentList}" border="0" cellpadding="0" cellspacing="1" styleClass="data" width="100%" export="true" requestURI="listStudents.action">

        <display:setProperty name="basic.empty.showtable" value="true" />   

        <display:setProperty name="basic.show.StudentList" value="false" />

        <display:setProperty name="css.th.sortable" value="centbold" />

        <display:setProperty name="css.th.sorted" value="centbold" />

        <display:setProperty name="export.excel.filename" value="StudentList.xls" />

        <display:setProperty name="export.banner">
            ...........................................
            ...........................................

    </display:table>

struts.xml中

<action name="listStudents" class="com.students.action.Student">
    <result name="listStudents">/jsp/listStudents.jsp</result>
</action>

我已将 displaytag-1.0.jar 添加到项目的WEB-INF / lib文件夹中。

该表未显示在jsp(空白jsp)中。
我可以知道如何解决这个问题吗?
提前致谢

2 个答案:

答案 0 :(得分:0)

尝试更改uri

<%@ taglib uri="http://displaytag.sf.net" prefix="display"%> 

您需要这些jar文件

  1. commons-beanutils-1.7.0.jar
  2. commons-collections-3.1.jar
  3. 公地琅2.3.jar
  4. displaytag-1.2.jar
  5. itext-1.3.jar
  6. jcl104-over-slf4j-1.4.2.jar
  7. log4j-1.2.13.jar
  8. POI-3.2-FINAL.jar
  9. slf4j-api-1.4.2.jar
  10. SLF4J-log4j12-1.4.2.jar
  11. 使用此CSS

    的style.css

    table {     border: 1px solid #666;     width: 80%;     margin: 20px 0 20px 0 !important; } th,td {     padding: 2px 4px 2px 4px !important;    text-align: left;   vertical-align: top; } thead tr {   background-color: #999999; } th.sorted {    background-color: #CCCCCC; } th a,th a:visited {    color: black; } th a:hover {    text-decoration: underline;     color: black; } th.sorted a,th.sortable a {     background-position: right;     display: block;     width: 100%; } tr.odd {     background-color: #fff } tr.tableRowEven,tr.even {  background-color: #CCCCCC } .group-1 { font-weight:bold; padding-bottom:10px; border-top:1px solid black; } .group-2 { font-style:italic; border-top: 1px solid black; } .grouped-table tr.even { background-color: #fff; } .grouped-table tr.odd { background-color: #fff; }
    

答案 1 :(得分:0)

我发现struts 2框架不支持displaytag-1.0.jar。
解决方案

  • 添加最新的jar - displaytag-1.2.jar。这个jar有依赖性 在commons-lang-2.x jar上,所以这个jar也应该在WEB-INF / lib文件夹中。

  • 使用JSP 2.0和displaytag-1.2.jar,WEB-INF文件夹中不需要displaytag-12.tld。

  • 在JSP中,包含&lt;%@ taglib uri =“http://displaytag.sf.net”prefix =“display”%&gt;
  • 要访问显示标记中的请求属性,只需使用

    <display:table uid= "studentTable" name="StudentList">
    其中“StudentList”是动作类中设置的请求属性。

  • 如果显示表需要导出到 CSV | XML | EXCEL ,则将displaytag-export-poi-1.2.jar添加到lib文件夹。