第一次发帖,希望大家能看懂,[color=red][b]就是JSP拿不到action里的属性[/b][/color],用的是struts2.1.8,在谷歌百度搜了很多页没能找到答案,各层代码如下,
web.xml:
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
DAO层:
public List listAll(String clazz) {
System.out.println("dao已执行");
return getHibernateTemplate().find("from "+clazz);
}
Service层:
public List browse() {
List list = dao.listAll("Teacher");
System.out.println("service层已执行,list记录数为 "+list.size());//输出list记录数
return list;
}
Action层(TeacherAction):
private List teacherList;
public String browse(){
teacherList = service.browse();
System.out.println("action层已执行,记录数为 "+teacherList.size());
return SUCCESS;
}
表现层(browseTeacher.jsp):
<%@ page contentType="text/html; charset=gbk"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@include file="../common/admin_head.jsp"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
接着用displaytag输出记录。太长省略
/display:table
struts.xml: // 这里我已在spring配置文件中对应TeacherAction为小写的teacherAction
/admin/{1}Teacher.jsp
[color=red][size=large]运行结果,各层能输出记录数,表明list已装上记录,然而JSP显示找不到记录,请问问题出在哪里?[/size][/color]
输出请看图片附件:
希望各位踊跃发言,我被这这问题卡了好久,万分感谢!
private List teacherList需要get方法,如过要在页面去的话,get方法么,你调用函数就给它赋值了可以不要。
/s:iterator
:twisted: 你这个struts2标签用的有问题,肯定取不到的,应该这样:
/s:iterator
或者: :wink:
private List teacherList; 有没有对应的get,set方法?
放在request作用域里
在页面取一下就行了么
使用标记,需设置devMode=true查看当前页面是否获取到teacherList对象
加个'#'号试试
[code="java"]
[/code]
表现层的迭代明显错了。
这样取。