在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了喔。
求高手打救,小弟感激不尽。

解决方案 »

  1.   

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

  2.   

    if(“yes”.equals(search ))
      

  3.   

    现在是,search的值yes传不到action中,在action中得不到search=yes,而是得到search='null'.
      

  4.   

    上面的逻辑是先访问action,jsp获取到search,再提交表单?
      

  5.   

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

  6.   

    现在是,search的值yes传不到action中,在action中得不到search=yes,而是得到search='null'.这个search应该没值,不是传值的问题。
      

  7.   

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

  8.   

    <%
    String search = (String) request.getAttribute("search");
    System.out.println("search :"+search );
    %>
    <input id="search" name="search" value="<%=search%>" type="hidden"/>
    这样获取啊,这个时候已经可以输出yes了。这样不行吗??上面代码的执行顺序是怎样的?貌似没明白过来
      

  9.   

    现在是,search的值yes传不到action中,在action中得不到search=yes,而是得到search='null'.这个search应该没值,不是传值的问题。<%=search%>得不到yes,只能向后台传null.为什么<%=search%>得不到yes呢??
      

  10.   

    <%
    String search = (String) request.getAttribute("search");
    System.out.println("search :"+search );
    %>
    <input id="search" name="search" value="<%=search%>" type="hidden"/>
    这样获取啊,这个时候已经可以输出yes了。这样不行吗??上面代码的执行顺序是怎样的?貌似没明白过来
    .jsp:
    <%
    String search = (String) request.getAttribute("search");
    System.out.println("search :"+search );
    %>
    <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(“你好!”);
    }
    request.setAttribute("search", "yes");
    return mapping.findForward("feedback");是jsp的form提交,执行了action,action获得form提交的值,来判断是否执行输出“你好”的语句。
      

  11.   

    String search = (String) request.getAttribute("search");
    ---------------------------------
    如果确实能保证这样可以获取到search,那么提交表单的时候,一般没问题。但我只看到request.setAttribute("search", "yes");这句是在action里面保存的,所以,没明白你的逻辑是怎么处理的。
      

  12.   

    <%
    String search = (String) request.getAttribute("search");
    System.out.println("search :"+search );
    %>
    <input id="search" name="search" value="<%=search%>" type="hidden"/>
    这样获取啊,这个时候已经可以输出yes了。这样不行吗??上面代码的执行顺序是怎样的?貌似没明白过来
    .jsp:
    <%
    String search = (String) request.getAttribute("search");
    System.out.println("search :"+search );
    %>
    <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(“你好!”);
    }
    request.setAttribute("search", "yes");
    return mapping.findForward("feedback");是jsp的form提交,执行了action,action获得form提交的值,来判断是否执行输出“你好”的语句。
    就上面所述,search是无法获取到yes的,应该是null
      

  13.   

    不要这样用,这存在一个请求问题。
    action里用
    HttpSession session = request.getSession();
    session.setAttribute("search", "yes");
    页面String search=(String)request.getSession(false).getAttribute("search");
      

  14.   

    我的逻辑是,只打开jsp,没调用action。
    然后点击提交,因为是第一次执行action,所以传入的search值是null,不执行“你好”,
    接着,将request.setAttribute("search", "yes");传回给jsp。
    之后的调用action都执行“你好”。
    总之就是要确保action在第一次执行的时候不执行“你好”。
    不知道我说的明白不??
      

  15.   


    问题是,
    <input id="search" name="search" value="<%=search%>" type="hidden"/>
    里面得不到
    <%String search = (String) request.getAttribute("search");
    System.out.println("search :"+search );%>
    的值喔。
      

  16.   

    同一个页面里有request的概念吗?
      

  17.   

    用request.getSession().setAttribute()存吧,jsp也用request.getSession().getAttribute()获取
      

  18.   

    <%String search = (String) request.getAttribute("search");
    System.out.println("search :"+search );%>
    有值,
    <input id="search" name="search" value="<%=search%>" type="hidden"/>
    里面没值喔。