开发工具与关键技术:MyEclipse 10、java
作者:梁添荣
撰写时间:2019-5-17
我们通常用EL表达式在servlet与jsp之间传值,但有时想,一个jsp的值想传到另一个jsp里去,除了通过传servlet再传另一个jsp方法外,还可以直接一个jsp的值直接传另一个jsp里去,从而实现修改的数据回填
第一个jsp:点击修改转到另一个jsp,并传值
<c:forEach items=”
u
s
e
r
s
"
v
a
r
=
"
u
s
e
r
"
>
<
t
r
>
<
t
d
w
i
d
t
h
=
"
5
{users}" var="user"> <tr> <td width="5%" class="td_title">
u
s
e
r
s
”
v
a
r
=
”
u
s
e
r
”
>
<
t
r
>
<
t
d
w
i
d
t
h
=
”
5
{user.userd }
u
s
e
r
.
u
s
e
r
n
a
m
e
<
/
t
d
>
<
t
d
w
i
d
t
h
=
"
5
{user.username }</td> <td width="5%" class="td_title">
u
s
e
r
.
u
s
e
r
n
a
m
e
<
/
t
d
>
<
t
d
w
i
d
t
h
=
”
5
{user.password }
新增
修改
删除
</c:forEach>
第二个jsp:写方法接受值
<%
String userd=request.getParameter(“userd”);
String username=request.getParameter(“username”);
String password=request.getParameter(“password”);
%>
传值:
id:
姓名:
密码:
由于是url带参数传值,如果值为中文,则出现乱码,可把值用getBytes(“8859_1”)转换成字节数组,然后用new String()把字节数组再转为UTF-8编码的字符串即可
Ps:即使是jsp在url带值传servlet里,也会乱码,此方法同样适用
上面的代码改为:
<%
String userd=new String(request.getParameter(“userd”).getBytes(“8859_1”),“UTF-8”);
String username=new String(request.getParameter(“username”).getBytes(“8859_1”),“UTF-8”);
String password=new String(request.getParameter(“password”).getBytes(“8859_1”),“UTF-8”);
%>
效果图:
传值页
接受页
总结:jsp传值到另一个jsp
2.第二个jsp
接受值:
<%
String username=request.getParameter(“username”);
%>
Ps:若值是中文:则必须转换字符串
String username=new String(request.getParameter(“username”).getBytes(“8859_1”),“UTF-8”);
3.赋值