jsp页面像action中传值问题,需要传递一个map
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp页面像action中传值问题,需要传递一个map相关的知识,希望对你有一定的参考价值。
jsp中定义一个map变量
var map = ;
然后用一个for循环存储值,如下
fo( 省略……)r
map.id = id_value;//其中id_value和name_value为变量,每次循环都是不同的值
map.name=name_value;
然后通过提交表单提交到后台,这一步如何实现呢
如何传值,后台如何遍历
望高手指教
实现了。
前台:<input type="hidden" name="map.key" value="value">
后台:action中生成map的getter、setter方法,就可以获取map
经过后台处理后,就可以用c便签遍历map
如果说不一定,可以考虑用session,这就简单了,页面先存,后台取,至于如何遍历,方法很多,一搜一大堆
存 session.setAttribute("map",map);
取 Map map = (HashMap)session.getAtrribute("map");追问
这个只能获取一个组合吧id,name
如果要获得多个组合,该怎么实现id,name id1,name1,id2,name2……
用list封装map吧,id,name id1,name1,id2,name2……这个是一个map的集合了
本回答被提问者采纳 参考技术B 一定要form的action提交的话只能在submit中添加onclick事件,然后当你点击提交时激活javascript程序,在javascript中吧map存到request中:request.setAttribute("map",map); 参考技术C map的意思其实就是键值对,。你像JSp中的内置对象 request ,session就是一个键值对,类型的容器,你把代码贴出来, 参考技术D 用session吧。。。。表单提交,后台接收的都是string类型的,用map....好麻烦啊。。。
JSP中传值事件
在制作网页时候,我们用到表单的时候通常会有action来连接到其他地方:
在表单中还有一个method属性:
默认为get,get是有地址栏的。
当然你也可以改成post:
当你换成post的时候:
普通传值代码:
普通传值:
先创建一个a1.jsp文件
<form action="a2.jsp" method="post">
用户名:<input type="text" name="username" id="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit">
</form>
接着创建一个a2.jsp文件
<%
String username = request.getParameter("username");
String password = request.getParameter("username");
%>
欢迎<%=username %>
这里有个问题:
这是因为
在ok.jsp,已经无法取出传给a2.jsp中的username
其原理就是:
把原来的a2.jsp中改成如下代码:
<form action="a2.jsp" method="post">
用户名:<input type="text" name="username" id="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit">
</form>
String username = request.getParameter("username");
String password = request.getParameter("password");
if (username.equals("admin")&&password.equals("123456")){
//登录成功
response.sendRedirect("ok.jsp");
}else{
//登录失败
response.sendRedirect("error.jsp");
}
这里还是输出不了,再把a2.jsp代码改成:
<form action="a2.jsp" method="post">
用户名:<input type="text" name="username" id="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit">
</form>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
if (username.equals("admin")&&password.equals("123456")){
//登录成功
//不影响客户端
//response.sendRedirect("ok.jsp");
//1、把请求转发给ok.jsp,不响应客户端,也不继续处理客户端请求
//让ok.jsp对客户端进行响应
request.getRequestDispatcher("ok.jsp").forward(request, response);
//问题,地址栏会发生改变吗?
//2、把数据也发一份给ok.jsp
}else{
//登录失败
response.sendRedirect("error.jsp");
}
%>
登录成功<br>
<%
String username = request.getParameter("username");
%>
欢迎<%=username%>
登录成功<br>
${classname}
${param.username}
以上是关于jsp页面像action中传值问题,需要传递一个map的主要内容,如果未能解决你的问题,请参考以下文章
struts2中的sessionrequest 和action往页面中传值的方法
jsp页面和action的传值与action和action之间的转换传值等四个问题