问题描述
用java写了一个发帖的小程序,可以发帖子,但是帖子在jsp页面读不出来!郁闷,求解...贴出一部分我的代码:jsp页面代码:用了两种标签都取不出来! <s:debug></s:debug>${text} <c:forEach items="${bbs}" var="v"><table width="98%" border="0" cellspacing="1" cellpadding="0" align="center" bgcolor="#FFFFFF"> <tr> <td>${v.name}</td> <td>${v.title}</td> <td>${v.content}</td> </tr> </table> </c:forEach> <hr/> <s:iterator value="bbs"> <table width="98%" border="0" cellspacing="1" cellpadding="0" align="center" bgcolor="#FFFFFF"> <tr> <td> <s:property value="name"/> </td> <td> <s:property value="title"/> </td> <td> <s:property value="content"/> </td> </tr> </table> </s:iterator>ForumAction一部分代码:(action可以取到已发布的帖子) public String find() throws Exception { BbsDao bbsdao = new BbsDao(); bbs = bbsdao.findAllBbs(); for(Bbs b : bbs){ System.out.println(b.getContent()); } return "find"; }strutrs.xml代码: <package name="bbs" extends="struts-default"><action name="Forum" class="huan.action.ForumAction" > <result name="insert">/bbs_list.jsp</result> <result name="find">/bbs_list.jsp</result></action> </package>就是郁闷action里面已经取到帖子,就是传不到jsp页面遍历???那里出错了呢?积分太少,只有5分了... 问题补充:引入了<c:out value="${1+1}"></c>可以显示! hao117 写道
解决方案
必须通过action去调jsp,不然jsp肯定不知道值存哪里的//发表文章public String insert() throws Exception {BbsDao bbsdao = new BbsDao();//bbsdao.save(name,title,content);this.find();text = "文章发表成功";return "insert";}//读取文章public String find() throws Exception {BbsDao bbsdao = new BbsDao();//bbs = bbsdao.findAllBbs();bbs = new ArrayList<Bbs>();for(int i=0;i<4;i++){Bbs a = new Bbs();a.setId(i+10);a.setName("good luck"+i);a.setTitle("thank you " + i + 5);a.setContent("every one " + i +100);bbs.add(a);}getRequest().setAttribute("bbs", bbs);return "find";}
解决方案二:
换成struts标签,前提是你getset方法都在action里面写了。<s:iterator id ="bbsiter" value="bbs" status="vs"> <tr> <td><s:property value="属性id1"/></td> <td><s:property value="属性id2"/></td> </tr> </s:iterator>如果没有写getset方法,又不想用struts标签,那就得 ServletActionContext.getRequest().setAttribute("bbs", bbs);
解决方案三:
你用的struts2?action中bbs添加了get,set方法没有,没有就添加试试。
解决方案四:
页面标签库引入了没有?