无法使用Struts实现Display标记

时间:2015-01-09 13:10:43

标签: hibernate struts2 displaytag

我正在使用Hibernate和struts框架来开发基于Web的应用程序。 我想使用display标签显示一些关于对象的信息,这个对象被映射,我能够从数据库中提取它..我也能从数据库中提取这个对象的集合/列表,我设置了集合并将它提供给display标签,但是在执行之后..抛出异常告诉我display:column中的属性未知,我检查了java bean,一切都正确..

这是代码:

    public class ReadToolsList extends ActionSupport implements SessionAware {
    private List TestingToolsList = null;
    Map Session;
    ReadToolsListLogic RDT = new ReadToolsListLogic();

    public String toolsList() {

        setTestingToolsList(RDT.readToolsLogic());

        return Action.SUCCESS;
    }

    public List getTestingToolsList() {
        return TestingToolsList;
    }

    public void setTestingToolsList(List testingToolsList) {
        TestingToolsList = testingToolsList;
    }   

    @Override
    public void setSession(Map arg0) {
        // TODO Auto-generated method stub

    }

    public Map getSession() {
        return Session;
    }

}

这是jsp页面中的代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"  pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>      

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test Tools List</title>
</head>

<body >
<h1>In side Tools List</h1> <br> <br>

<display:table id="data" name="TestingToolsList" requestURI="/ToolList.action" pagesize="3" export="true" >
        <display:column property="Tool_Name" title="Name" sortable="true"/> 
</display:table>

</body>
</html>

这是struts.xml中的代码:

<struts>
    <package name="module-Authentication" extends="struts-default">

        <action name="authentication" class="TTI.Presenstation.AuthenticationAction"
            method="Authentication">
            <result name="admin" type="chain">ToolList</result>
            <result name="user">/View/success.jsp</result>
            <result name="error">/View/error.jsp</result>
        </action>

    </package>

    <package name="Admin-Pages" extends="struts-default">

        <action name="ToolList" class="TTI.Presenstation.ReadToolsList"
            method="toolsList">
            <result name="success">/View/Admin_Pages/Tools_List.jsp</result>
            <result name="error">/View/error.jsp</result>
        </action>
    </package>
</struts>

1 个答案:

答案 0 :(得分:0)

必须使用小写字母来访问getter,因此getTestingToolsList = testingToolsList

<display:table id="data" 
             name="testingToolsList"
       requestURI="/ToolList.action" 
         pagesize="3" 
           export="true" 
              uid="data" > <!-- also add the "uid" attribute -->

Tool_name的{​​{1}}应该是tool_name

<display:column property="tool_Name" title="Name" sortable="true"/> 

那就是说,它也应该是camelCase:toolName。我们最近发现它不仅是一种很好的做法,而是it is mandatory in some cases

<display:column property="toolName" title="Name" sortable="true"/> 

如果您需要访问column元素中的值,可以使用#attr从特定范围中检索它们:

<display:column title="Name" sortable="true"> 
    <s:property value="#attr.data.toolName" />
</display:column>