刚刚接受struts2没有天,遇到从一个Action类中将其一个list中的数据显示到jsp页面中的问题.经过查资料得出用如下方法:
/*这是我在做的时候写的一个Action类,让他继承自ActionSupport类,并实现ServletRequestAware接口*/
/*也可以另写一个Text类,让其实现ServletRequestAware接口,然后在Action类中调用Text中的方法*/
public class DataConntion extends ActionSupport implements ServletRequestAware{
public List list;
//定义request对象
private javax.servlet.http.HttpServletRequest request;
// 获得HttpServletRequest对象
/*
* 实现接口
*/
public void setServletRequest(HttpServletRequest request)
{
this.request = request;
}
public String excute()throws Exception{
//这里要在该类中得到list的值,然后再发送list到页面中去,此处省略
*************
request.setAttribute("result",list); //关键代码 发送数据 "result" 是自己取的一个名字,list就是所要发送的东东了啥
}
}
接下来就是在jsp页面中接收list中的数据,并让其显示出来,方法如下:
用<c:forEach></c>标签 注:用此标签必须要在其jsp页面前加入这句代码:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
我写的例子代码如下:
<c:forEach var="user" items="${result}"> //user 是自已定义的一个类变量名, ${result}EL表达式,result应与上面一致
<td>
<c:if test="${empty user.reId}"> 判断list中的值是否为空,为空则显示/,否则显示list中的值.
/
</c:if>
${user.reId}
</td>
<td>
<c:if test="${empty user.reNames}">
/
</c:if>
${user.reNames}
</td>
</c:forEach>