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

参考技术A 一定要通过表单提交吗,这个比较麻烦,因为通过表单提交的数据,到后台都是字符串数据,还得写长法实现数据的转换

如果说不一定,可以考虑用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的主要内容,如果未能解决你的问题,请参考以下文章

JSP 页面传值

struts2中的sessionrequest 和action往页面中传值的方法

jsp页面和action的传值与action和action之间的转换传值等四个问题

jsp实现给本页面传值后并更改本页面UI

如何在HTML页面用EL表达式接受JSP页面session中传过来的值?

怎样从jsp页面传递一个List<Map<String,Object>>的集合到Action