<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix = "s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
public class QuerySubscriber {
private IAisBusBIZ aisBusBIZ;
public IAisBusBIZ getAisBusBIZ() {
return aisBusBIZ;
}
public void setAisBusBIZ(IAisBusBIZ aisBusBIZ) {
this.aisBusBIZ = aisBusBIZ;
}
public void querySubscriber(){
List<Subscriber> list = aisBusBIZ.querySubscriber();
ServletActionContext.getRequest().setAttribute("subList", list);
}
public String execute(){
querySubscriber();
return "success";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
/index.jsp
[b]问题补充:[/b]
struts2我采用了spring进行代理,如果我设置一个list属性,那么我需要在spring初始时给属性赋值的啊.
subList放入值栈:
[code="java"]
public class QuerySubscriber {
private List<Subscriber> subList = new ArrayList<Subscriber>();
public List<Subscriber> getSubList() {
return subList;
}
public void setSubList(List<Subscriber> subList) {
this.subList = subList;
}
......
}
[/code]
subList放入值栈:
[code="java"]
public class QuerySubscriber {
List<Subscriber> subList = new ArrayList<Subscriber>();
......
}
[/code]
页面使用JSTL
[code="java"]
${index.index}
${index.sbuscriberkey}
${index.applytime}
${index.expiretime}
/s:iterator
[/code]
楼主看样子是从struts1过来的吧,你在后台是把数据放到request中了,可页面你是在struts2的值栈中取的,虽然值栈也是在request中,但你后台没把值放入值栈,页面自然取不到了。
解决方法楼上的兄台说的已很清楚了,有两个解决办法:
1,采用正统的方法,用值栈,他说的是正确的,在java中定义个List,再给它set,get方法。这样就可以在页面中取到值了,建议楼主用查看下值栈中的内容,这样就一目了然了。
2,采用传统的jstl表达式,楼上 cwx714兄台说的好像有点不太对,[code="jsp"]
${index.index}
${index.sbuscriberkey}
${index.applytime}
${index.expiretime}
/c:forEach
[/code]
个人觉得,用spring代理,list也不用在spring中注入啊,不是所有的属性都要由spring管理的