两个关于struts的问题!

iamsoloist 2003-08-08 05:12:37
一、一个简单的留言板,显示页面是index.jsp,在显示留言的下面是添写留言的form。提交到action bean后,处理之后又返回该页。
问题是,返回后在添写留言的form里还能看到刚才所添的留言。地址栏里也不是index.jsp这页,而是action bean的地址,我如果在地址栏里重新输入index.jsp后,添写留言的form里就为初始的。不知道怎么解决这个问题???我想返回时清空form里的东西。

二、在显示数据时,我怎么把数据取过来呀,是不是得通过<bean:write ...>这个方法呀,那分页怎么处理呢?

谢谢!
...全文
22 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamsoloist 2003-08-11
  • 打赏
  • 举报
回复
谢谢  transist(风动石) 和 Alain_Delone(阿龙)
我明白一些了,先项一会,让也有这两个问题的朋友也来看看:)
xinshou1979330 2003-08-10
  • 打赏
  • 举报
回复
学习中
Alain_Delone 2003-08-10
  • 打赏
  • 举报
回复
关于FORMBEAN,你在struts-config.xml文件里定义FORMBEAN时有个名字,
那个名字就是你存储在域里的键值,比如你要显示的form bean 叫"Form1"
scope="session"

你在JSP页面里直接可以用session.getAttribute("Form1");来得到那个formbean对象,当然这样破坏了STRUTS的封装,不太好,也可以用bean:write不过不自由

至于第一个问题,可以用scope="request"
不过还可以在你处理完操作后用mapping.removeAttribute把这个ACTION对应的那个formbean
清空掉,也可以达到目的,无论你的SCOPE是SESSION还是REQUEST
transist 2003-08-10
  • 打赏
  • 举报
回复
<%
String offset =((Page)session.getAttribute("page")).getOffset();
String length =((Page)session.getAttribute("page")).getLength();
%>
<logic:iterate id="item" name="dataSet" offset="<%=offset %>" length="<%=length %>" >

</logic:iterate>
也就是可以用一个对象来存储页面的信息,如第几页,共几页,每页显示几条记录等等,然后存在session中,在我这个例子中,session中的page变量正是一个页面信息对象的引用,可以通过第几页取得该页纪录的起始位置getOffset(); getLength()是每页的记录数。然后你可以用一个表单来进行翻页。
iamsoloist 2003-08-10
  • 打赏
  • 举报
回复
up
honest19 2003-08-09
  • 打赏
  • 举报
回复
在你的form中加reset方法,然后在你的action中调用这个方法。利用jbuilder编写时,它会提示的。
iamsoloist 2003-08-09
  • 打赏
  • 举报
回复
up
iamsoloist 2003-08-09
  • 打赏
  • 举报
回复
第一个问题解决了
我在actionform中定义了一个方法,用于清除数据值。然后在action中调用,就可解决问题。
我的scope是request的。也不是清除缓存的问题。我都试过了。
第二个问题还请大侠们帮助给个提示,谢谢

hpguo_java 2003-08-09
  • 打赏
  • 举报
回复
正确的说,如果struts-config.xml中<action /> 没有设置scope的话,默认值是session,所以只要指定scope为request就可以解决第一个问题了
one_bird 2003-08-08
  • 打赏
  • 举报
回复
学习~!
whyxx 2003-08-08
  • 打赏
  • 举报
回复
我想说的,大家都先说了
xiaoyuerisdahai 2003-08-08
  • 打赏
  • 举报
回复
我不太懂,帮你顶!!!!
LoveTide 2003-08-08
  • 打赏
  • 举报
回复
在 ActionForm::reset () 里面清除数据……

yansg 2003-08-08
  • 打赏
  • 举报
回复
1.在actionBean中,利用完form 传来的数据后,将form 释放掉试试!
2.分页比较麻烦,要自己写bean来完成了
squallzeng 2003-08-08
  • 打赏
  • 举报
回复
我同意“along603(懒虫) ”看法,不知道你在struts-config.xml里面的scope是不是设置成了scope=="session".这样子的话就会出现你所说的情况。因为这样子的话是一个对话请求了,你的对话没有结束当然数据也就还在了,如果换成了request的就不会了,具体就不应我说了吧?:-)
along603 2003-08-08
  • 打赏
  • 举报
回复
1。我想大概是你的struts-config.xml里面的scopet没设置,你把他设置成为scope="request"就应该不会了
2。别人都说用<logic:iterate offset="起始位置" length="长度">来做分页
WAPQQ 2003-08-08
  • 打赏
  • 举报
回复
1, 使用java提供的方法,在jsp或者servlet中都可以
清除缓冲
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
%>
2, 使用HTML标记,如下面:
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
你第一个问题好象是缓冲的问题

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧