关于jsp参数传递、动态增加数据及页面处理问题

现在在做一个管理系统,有个表单A分头部及Details,我的想想法:把让Details能动态增加数据,比如说货品信息,当点添加按钮以后弹出添加窗口,当添加的数据提交好,保... 现在在做一个管理系统,有个表单A分头部及Details,我的想想法:把让Details能动态增加数据,比如说货品信息,当点添加按钮以后弹出添加窗口,当添加的数据提交好,保存在一个bean里,然后自动关闭这个添加窗口,接着让A刷新。 但是我不知道如何实现,希望各位高手能给点意见,用javascript,servlet都行。或者只要实现bean存储、动态增加的解决方法都行!
各位谢谢帮忙,ajax可能是个好的解决方案,可是我不是很懂ajax啊,时间也很紧,还有其他办法没?其实这是我的毕业设计,我对很多东西都不熟,呵呵 我QQ252248968
展开
 我来答
liveimain001
2009-05-04 · 超过37用户采纳过TA的回答
知道答主
回答量:158
采纳率:0%
帮助的人:0
展开全部
不用那么麻烦,开窗就解决了,等我一会,现在给你写

行了,你看一下吧,这样比你现学ajax和dom要省事,当然,肯定效果没有ajax+dom好,希望能够帮到你

A.jsp关键代码:

<script type="text/javascript">
function add(){
window.open("B.jsp", "newwindow", "height=500, width=1024, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no");

}
</script>
</head>

<body>
<form id="form1" method="post" action="">
<table border="1" cellpadding="0" cellspacing="0" align="center">
<tr>
<td>编号</td>
<td>用户名</td>
<td>密码</td>
</tr>
<c:forEach var="bean" items="${list}">
<tr>
<td>${bean.id }</td>
<td>${bean.uname }</td>
<td>${bean.upass }</td>
</tr>
</c:forEach>
<tr align="center"><td><input type="button" value="添加新信息" onclick="add();"></td></tr>
</table>
</form>
</body>

B.jsp关键代码:

script type="text/javascript">
function sub(){

var id = document.getElementById("id").value;
var uname = document.getElementById("uname").value;
var upass = document.getElementById("upass").value;

form1.action='<c:url value="servlet/SaveServlet?id='+toUTF8(id)+'&uname='+toUTF8(uname)+'&upass='+toUTF8(upass)+'"/>';
form1.submit();
this.parent.opener=null;
this.parent.close();

//window.close();

}

function toUTF8(a) {
var wch, x, uch = "", szRet = "";
for (x = 0; x < a.length; x++) {
wch = a.charCodeAt(x);
if (!(wch & 0xFF80)) {
szRet += a.charAt(x);
} else if (!(wch & 0xF000)) {
uch = "%" + (wch >> 6 | 0xC0).toString(16) + "%"
+ (wch & 0x3F | 0x80).toString(16);
szRet += uch;
} else {
uch = "%" + (wch >> 12 | 0xE0).toString(16) + "%"
+ (((wch >> 6) & 0x3F) | 0x80).toString(16) + "%"
+ (wch & 0x3F | 0x80).toString(16);
szRet += uch;
}
}
return (szRet);
}
</script>
</head>

<body>
<form id="form1" method="post" action="">
<table>
<tr><td>编号:<input type="text" id="id" name="id"></td></tr>
<tr><td>用户名:<input type="text" id="uname" name="uname"></td></tr>
<tr><td>密码:<input type="text" id="upass" name="upass"></td></tr>
<tr><td><input type="button" value="保存" onclick="sub();"></td></tr>
</table>
</form>
</body>

servlet关键代码:

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String id = request.getParameter("id");
String uname = request.getParameter("uname");
String upass = request.getParameter("upass");

UsersInfo info = new UsersInfo();
info.setId(id);
info.setUname(uname);
info.setUpass(upass);

List<UsersInfo> list = new ArrayList<UsersInfo>();
list.add(info);
request.setAttribute("list", list);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("../A.jsp");
requestDispatcher.forward(request, response);

}
xuechongyang99
2009-05-04
知道答主
回答量:12
采纳率:0%
帮助的人:2.1万
展开全部
这个貌似挺难,关注中。。。
我帮你去CSDN论坛问问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pujia12345
2009-05-04 · TA获得超过3680个赞
知道大有可为答主
回答量:3456
采纳率:0%
帮助的人:2961万
展开全部
当然是Ajax(JS+DOM)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
windseed
2009-05-04 · TA获得超过121个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:163万
展开全部
这样说吧,不知道你用没用过ajax刷新联动菜单,也就是第一个下拉菜单选择不同的选项后第二个里面会有不同的值。这不是一个道理么?当你提交新添加的数据后,只要在ajax里面写好该表单中要刷新的部分的变化即可,我想表单的头部应该不需要刷新吧。至于临时记录的存储,你用什么都行,就像你说的bean吧,这个数据提交给servlet,servlet调用bean中的方法将新加的记录写入数据库,然后ajax的bean呢,从数据库中读出记录再提交回jsp的表单,这样就可以看到显示的记录会多一条。不知道你问的是不是这个意思。
我这里有个ajax联动菜单的小例子,不过用的是模拟数据库,你可以根据这个修改成数据库的servlet和bean。这个例子最近已经帮助过很多人了,如果你需要留给我邮箱传给你。如果这个例子不太会修改可以再问我,我现在也在做一个ajax刷新带数据库的东西,应该可以帮上你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式