日期:2014-05-17  浏览次数:20525 次

一个关于request传值的问题。
在jsp页面,有
String search = (String) request.getAttribute("search");
System.out.println("search :"+search );
       
在<Form>中,有

<form name="queryConditionform" method="post" action="/rsas/FeedbackAction.do">
     <input id="search" name="search" value="<%=search%>" type="hidden"/>
</form>


在action中,有
String search = request.getParameter("search");
System.out.println("search-action :"+search );
if(search ==“yes”){
  System.out.println(“你好!”);
}
在action的最后,有
request.setAttribute("search", "yes");
return mapping.findForward("feedback");

基本的需求,当第一次登陆页面的时候,提交了form后,不输出“你好”,然后再提交的时候,才会输出“你好”,
但是问题是,输出的结果是
第一次登陆:
search :null
点击submit后:
search-action :null
search :yes
再点击submit:
search-action :null
search :yes

发现<input id="search" name="search" value="<%=search%>" type="hidden"/>
的value的值老是null,这是为什么的?输出的search 已经是yes了喔。
求高手打救,小弟感激不尽。

------解决方案--------------------
引用:
Quote: 引用:

这里比较的是字符串吧
字符串可以用==来比较么?
那么str.equals(object)是做什么用的呢?
至于你说你能输出“你好”
我很想知道原因。

现在是,search的值yes传不到action中,在action中得不到search=yes,而是得到search='null'.
这个search应该没值,不是传值的问题。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

先访问jsp,那么<input id="search" name="search" value="<%=search%>" type="hidden"/>里面的search怎么能获取到?而且看上面的是在action才保存的。

<%
String search = (String) request.getAttribute("search");
System.out.println("search :"+search );
%>
<input id="search" name="search" value="<%=search%>" type="hidden"/>
这样获取啊,这个时候已经可以输出yes了。这样不行吗??