一个jsp:forward的非常奇怪的问题
<jsp:forward page="serviceEdit.do?action=add&serviceName=<%=serviceName%>&startLine=<%=startLine%>" />
其中serviceEdit.do是一个servlet,我在web.xml里定义了的
在当前页面上,serviceName="",startLine="1",二者都是String型
很奇怪,在serviceEdit里不知道为什么只有startLine的参数值传递不了,无论怎么改变jsp:forward里serviceEdit.do?后面传递参数的顺序,action,serviceName的值都可以得到,但是startLine=null
我改成下面这样也不行:
<jsp:forward page="serviceEdit.do?action=add&serviceName=<%=serviceName%>&startLine=<%=startLine%>" />
问题点数:0、回复次数:6Top
1 楼babywxg(风继续吹)回复于 2003-12-03 20:39:53 得分 0
这样写很不规范
应该是
<jsp:forward>
parameter..
</jsp:forward>
用 paramater 来传递参数,这样万无一失,试试把,祝你好运!Top
2 楼ahua20(心随我动)回复于 2003-12-03 20:54:22 得分 0
用response.sendRedirect()吧!Top
3 楼gaolu(高陆)回复于 2003-12-04 10:38:35 得分 0
response.sendRedirect()不行,会显示cannot ... after commited那种错误,我试过了.
难道是用<jsp:forward>serviceEdit.do?action=add&serviceName=<%=serviceName%>&startLine=<%=startLine%></jsp:forward>
这样?Top
4 楼gaolu(高陆)回复于 2003-12-04 10:45:15 得分 0
我用<jsp:forward page="serviceEdit.do?action=add&serviceName=<%=serviceName%>&startLine=<%=startLine%>"></jsp:forward>还是一样的结果
用System.out.println打印了这些值,发现就是startLine的值不对
这好像是jsp的bug啊,至少说明用request传递参数不是万无一失的.其次,有可能某些特定的单词,比如start会出现传递错误,和它内部的封装可能有关系.Top
5 楼blackcourser(潜心修炼)回复于 2004-02-16 18:32:07 得分 0
我forward只有一个参数,可是传递之前有值,可是在传递页面就变更了null,不知道怎么回事?Top
6 楼starg(123)回复于 2004-02-16 23:15:12 得分 0
这样试一下:
<%String url=="serviceEdit.do?action=add&serviceName="+serviceName+"&startLine="+startLine;%>
<jsp:forward page="<%=url%>">
</jsp:forward>
规范用法应该是:
<jsp:forward>
parameter..
</jsp:forward>
Top




