我正在使用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>
答案 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>