*********************寻求好的解决方法?*******************
假设有三个JSP页面,1.jsp,2.jsp,3.jsp.在每个jsp中都可以输入好多文本域text,
1提交给2,2提交给3,最后在3上保存到数据库.
问题1.
由于2和3在客户输入内容后,如果输入错误可以修改,我在页面上提供可以返回修改的按钮,请问当2和3上面输入好多内容后,客户按返回修改的时候怎么样保存页面上的数据,
我知道可以用session,但是session太多了,是不是容易出错,有没更好的解决方法?
问题2.
我在2.jsp上有增加和删除的功能,就是客户输入内容后,按增加,在2.jsp中动态生成一个table,显示客户输入的记录内容,按删除,则动态删除table中的一条记录,怎么实现这样的功能?
如果客户输入了10条记录,这时按返回修改,页面切换到1.jsp,那么我们这么保存这10条记录?
请高手们帮帮忙,给出好的解决方案,
小弟是个大菜,请大侠们给出详细的代码?详细的代码?
小弟感激不尽!小弟感激不尽!小弟感激不尽!小弟感激不尽!
问题点数:100、回复次数:4Top
1 楼jacquiyan(yan)回复于 2002-10-03 10:45:31 得分 60
问题1。你可以用hidden field来保存1.jsp输入的数据
问题2。⒉jsp表单的action中设置为本页面2.jsp,在2.jsp中读取提交的数据,然后进行操作,完成后
response.Rediect("2.jsp");就可以了
这是我写的一段代码
<form name="form1" method="post" action="broadcast.jsp">
<% String Submit,textarea;
String[] checkbox;
boolean flag=false;
Submit=request.getParameter("Submit");
textarea=request.getParameter("textarea");
checkbox=request.getParameterValues("checkbox");
if((Submit!=null)&&Submit.equals("create")) {//填加新的广播
long id1=adminbr.createBroadcast(textarea);
response.sendRedirect("broadcast.jsp"); }
else if((Submit!=null)&&Submit.equals("del")){
for(int k=0;k<checkbox.length;k++){
try{
long id2=new Long(checkbox[k]).longValue() ;
flag=adminbr.delBroadcast(id2);
}catch(javax.ejb.FinderException fe){flag=false;}
catch(Exception fe){flag=false;}
}
if (flag) response.sendRedirect("broadcast.jsp?brnextpage="+brnextpage);
}
else if((Submit!=null)&&Submit.equals("deploy")){//发布已有的广播
for(int k=0;k<checkbox.length ;k++){
try{
long id2=new Long(checkbox[k]).longValue();
flag=adminbr.deployBroadcast(id2);
}catch(javax.ejb.FinderException fe){flag=false;}
catch(Exception fe){flag=false;}
}
if (flag) response.sendRedirect("broadcast.jsp?brnextpage="+brnextpage);
}
else if((Submit!=null)&&Submit.equals("undeploy")){//不发布广播
for(int k=0;k<checkbox.length ;k++){
try{
long id2=new Long(checkbox[k]).longValue();
flag=adminbr.undeployBroadcast(id2);
}catch(javax.ejb.FinderException fe){flag=false;}
catch(Exception fe){flag=false;}
}
if (flag) response.sendRedirect("broadcast.jsp?brnextpage="+brnextpage);
}
else if((Submit!=null)&&Submit.equals("change")){//修改
for(int k=0;k<checkbox.length ;k++){
try{
long id2=new Long(checkbox[k]).longValue() ;
adminbr.setBroadcastContent(id2,textarea);
}catch(Exception fe){ }
response.sendRedirect("broadcast.jsp?brnextpage="+brnextpage);}
}
%>
注意修改页面的<%@ page buffer="24k"%>Top
2 楼sdp001(煎熬ing.......)回复于 2002-10-04 11:21:42 得分 0
多谢楼上的哥们,
这样的问题应该经常遇到的啊,
请大家参与!Top
3 楼zhangjianguo(笨笨)回复于 2002-10-04 12:59:59 得分 40
我不想寫代碼了,不過我想給你一個解決這種問題的一個思想:
1.jsp如果輸錯了的話,為甚麼一定要提交到頁面2.jsp去檢查呢?
你可以在1.jsp頁面提交前用javascript來檢查錯誤,如果要從數據庫取數來驗證錯誤的話,可以在1.jsp頁面用<iframe>來包含一個隱藏頁面進行檢查,然後返回結果.這樣做介面更美觀,功能更強大
我想你可以嘗試一下Top
4 楼Mai_520(一个很有上进心的流氓)回复于 2002-10-04 13:17:40 得分 0
我刚在java版看到你的问题了,并用定制标记的方法作了回答。
你可去看看。Top




