Spring displaytag数据库中的动态列
我想在struts2 web应用程序中使用显示标记来显示数据库中的数据。数据显示动态更改表名并显示数据。如何在jsp中显示动态列。 我使用了以下代码。它只能工作一排。如何在显示表中添加多行Spring displaytag数据库中的动态列,spring,struts2,displaytag,Spring,Struts2,Displaytag,我想在struts2 web应用程序中使用显示标记来显示数据库中的数据。数据显示动态更改表名并显示数据。如何在jsp中显示动态列。 我使用了以下代码。它只能工作一排。如何在显示表中添加多行 public class TableDataDyno { private ArrayList<Object> dynaBeans; public TableDataDyno() { dynaBeans = new ArrayList<Object>(); dyn
public class TableDataDyno {
private ArrayList<Object> dynaBeans;
public TableDataDyno()
{
dynaBeans = new ArrayList<Object>();
dynaBeans.add(new DynaBean("One","5"));
dynaBeans.add(new DynaBean("One","6"));
dynaBeans.add(new DynaBean("One","7"));
dynaBeans.add(new DynaBean("One","8"));
dynaBeans.add(new DynaBean("One","9"));
dynaBeans.add (new DynaBean("Two", "5"));
dynaBeans.add (new DynaBean("Two", "6"));
dynaBeans.add (new DynaBean("Two", "7"));
dynaBeans.add (new DynaBean("Two", "8"));
dynaBeans.add (new DynaBean("Two", "9"));
dynaBeans.add(new DynaBean("Three", "5"));
dynaBeans.add(new DynaBean("Three", "6"));
dynaBeans.add(new DynaBean("Three", "7"));
dynaBeans.add(new DynaBean("Three", "8"));
dynaBeans.add(new DynaBean("Three", "9"));
}
public ArrayList<Object> getdynaBeans() {
return dynaBeans;
}
public class DynaBean {
private String title;
private String value;
public DynaBean(String title, String value) {
this.title = title;
this.value = value;
}
public String getTitle() {
return title;
}
public String getValue() {
return value;
}
公共类TableDataDyno{
私有ArrayList dynaBeans;
公共表datadyno()
{
dynaBeans=新的ArrayList();
添加(新的DynaBean(“一”、“五”));
添加(新的DynaBean(“一”,“6”));
添加(新的DynaBean(“一”,“7”));
添加(新的DynaBean(“一”,“8”));
添加(新的DynaBean(“一”,“9”));
添加(新的DynaBean(“两个”、“5”);
添加(新的DynaBean(“两个”,“6”));
添加(新的DynaBean(“两个”,“7”));
添加(新的DynaBean(“两个”,“8”));
添加(新的DynaBean(“两个”,“9”));
添加(新的DynaBean(“三”,“5”);
添加(新的DynaBean(“三”,“6”));
添加(新的DynaBean(“三”,“7”));
添加(新的DynaBean(“三”,“8”));
添加(新的DynaBean(“三”,“9”));
}
公共ArrayList getdynaBeans(){
退豆;
}
公共类DynaBean{
私有字符串标题;
私有字符串值;
公共DynaBean(字符串标题、字符串值){
this.title=标题;
这个值=值;
}
公共字符串getTitle(){
返回标题;
}
公共字符串getValue(){
返回值;
}
}
java.util.ArrayList outerBeans=new java.util.ArrayList();
对于(int i=0;i<2;i++)
{
add(newtabledatadyno());
}
System.out.println(outerBeans);
setAttribute(“items”,outerBeans);
输出为:
预期产出:
做了一点小小的改变
在TableDataDyno.java中
public class TableDataDyno {
private ArrayList<DynaBean> dynaBeans;
public TableDataDyno(int number)
{
dynaBeans = new ArrayList<DynaBean>();
dynaBeans.add(new DynaBean("One",number));
dynaBeans.add (new DynaBean("Two", number));
dynaBeans.add(new DynaBean("Three", number));
}
public ArrayList<DynaBean> getdynaBeans() {
return dynaBeans;
}
}
[5,6,7,10][5,6,7,11][5,6,7,13]
[5,6,7,10][5,6,7,11][5,6,7,13]
仍然没有得到预期的产出
现在在jsp页面中有一个小技巧
<display:table uid="item" name="items">
<c:forEach var="cl" items="${item.dynaBeans }" varStatus="index">
<display:column title="${cl.title}" >
<display:table uid="b" name="${cl.value}">
<c:out value="${b}"></c:out>
</display:table>
</display:column>
</c:forEach>
</display:table>
而输出是您的预期输出
一二三
五五五
6 6
7 7 7
101113
我们终于找到了!!!!:)您的预期输出是什么?我的预期输出是:一二三
java.util.ArrayList<TableDataDyno> outerBeans = new java.util.ArrayList<TableDataDyno>();
for(int i=5; i< 10 ; i++)
{
outerBeans.add(new TableDataDyno(i));
}
request.setAttribute("items", outerBeans);
<display:table uid="item" name="items">
<c:forEach var="cl" items="${item.dynaBeans }" varStatus="index">
<display:column title="${cl.title}" property="dynaBeans[${index.index}].value" />
</c:forEach>
</display:table>
public class DynaBean {
private String title;
private List<String> value;
public DynaBean(String title, List<String> value) {
this.title = title;
this.value = value;
}
public String getTitle() {
return title;
}
public List<String> getValue() {
return value;
}
}
public class TableDataDyno {
private ArrayList<DynaBean> dynaBeans;
public TableDataDyno()
{
dynaBeans = new ArrayList<DynaBean>();
List<String> arr1 = new ArrayList<String>();
arr1.add("5");
arr1.add("6");
arr1.add("7");
arr1.add("10");
dynaBeans.add(new DynaBean("One",arr1));
List<String> arr2 = new ArrayList<String>();
arr2.add("5");
arr2.add("6");
arr2.add("7");
arr2.add("11");
dynaBeans.add (new DynaBean("Two", arr2));
List<String> arr3 = new ArrayList<String>();
arr3.add("5");
arr3.add("6");
arr3.add("7");
arr3.add("13");
dynaBeans.add(new DynaBean("Three", arr3));
}
public ArrayList<DynaBean> getdynaBeans() {
return dynaBeans;
}
}
One Two Three
<display:table uid="item" name="items">
<c:forEach var="cl" items="${item.dynaBeans }" varStatus="index">
<display:column title="${cl.title}" >
<display:table uid="b" name="${cl.value}">
<c:out value="${b}"></c:out>
</display:table>
</display:column>
</c:forEach>
</display:table>