0

我有一个具有以下属性的对象列表

公共类 ViewTestCasesBean {

private String testcaseName;
private String subject;
private String description;
private List<TestCaseDetailsBean> testList = new ArrayList<TestCaseDetailsBean>();

// GETTERS AND SETTERS SECTION.......///////

public String getTestcaseName() {
    return testcaseName;
}

public void setTestcaseName(String testcaseName) {
    this.testcaseName = testcaseName;
}

public String getSubject() {
    return subject;
}

public void setSubject(String subject) {
    this.subject = subject;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public List<TestCaseDetailsBean> getTestList() {
    return testList;
}

public void setTestList(List<TestCaseDetailsBean> testList) {
    this.testList = testList;
}

}

现在我的操作代码是......

   public String execute() {


    detailsList = viewTestCasesTransaction.fetchTestCases();
    session.put("testcaseList", detailsList);

    if (detailsList.size() > 0) {

        return SUCCESS;
    }
    return ERROR;
}

这里的 detailsList 是上面要显示在 display 标签中的对象的 List。

我尝试了以下

 <jsp:root version="1.2" xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="urn:jsptld:http://java.sun.com/jstl/core">
<%@page import="org.apache.jasper.tagplugins.jstl.core.Import"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*"%>
<%@ page import="com.harmony.cloud.bean.TestCaseDetailsBean"%>
<%@ page import="com.harmony.cloud.action.ViewTestCasesAction"%>

<%@ page import="java.sql.*"%>
<%@ page isELIgnored="false"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display"%>

<html>
   <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

 <title>Test Cases List</title>


  </head>
   <body>
<%session.getAttribute("testcaseList"); %>
<display:table name="detailsList" id="parent">
    <display:column property="testcaseName" />
    <display:column property="subject" />
    <display:column property="description" title="Comments" />

    <c:set var="nestedName"
        value="detailsList[${parent_rowNum -1}].testcaseList}" />
 <display:table  name="${nestedName}" id="child${parent_rowNum}" >
    <display:column title="Steps">
</display:table>
</display:column>

  <display:setProperty name="paging.banner.placement" value="top" />

        </display:table>

  </body>
</html>

但是出现以下错误......

org.apache.jasper.JasperException: /testCasesView.jsp (line: 3, column: 3) 元素的内容必须由格式良好的字符数据或标记组成。org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher. java:89) org.apache.jasper.compiler.JspDocumentParser.parse(JspDocumentParser.java:207) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:226) org.apache.jasper.compiler.ParserController。 parseDirectives(ParserController.java:119) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:193) org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) org.apache.jasper。 compiler.Compiler.compile(编译器。

编码有什么问题?

4

2 回答 2

0

注意以下元素:

1)<jsp:root ...>没有结束标签

2)值表达式有额外的花括号和类属性testcaseList不存在<c:set var="nestedName" value="detailsList[${parent_rowNum -1}].testcaseList}" />,所以将其更改为<c:set var="nestedName" value="detailsList[${parent_rowNum -1}].testList" />

3)显示:嵌套表缺少property属性的列标记<display:column title="Steps">

4)将doctype放在文件的第一行<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

5)这只是一个问题,您正在检索会话属性但没有分配它。这是故意的吗?

来自 displaytag-examples-1.2.war -> example-nestedtables.jsp 的示例

于 2013-01-02T17:40:11.263 回答
0

如果您使用的是 Eclipse IDE,当您创建 JSP 时,请按照向导创建一个带有 html 标记或 xhtml 标记的 JSP。您不想创建带有 JSP 2.0 特定标记、xhtml 标记的 JSP。项目 -> 新建 -> JSP 文件 -> 选中使用 JSP 模板 -> 带有 xhtml/html 标记的新 JSP 文件。

于 2013-03-13T08:35:21.600 回答