------
            if(!rs.next()){ userop.insertRecord(usera); 
 %>
             <p>你好,<%=userid%>恭喜你已注册成功!</p>     
  <% } else{  %>
          -----
      我么写的时候,有个奇怪现象,就是执行了userop.insertRecord(usera); ,而后面的语句不能执行,就是说,tomcat没报错但网页上显示为空,且我查询数据库确实已经插入了usera,后来我把代码改成            ------
            if(!rs.next()){
 %>
             <p>你好,<%=userid%>恭喜你已注册成功!</p>     
<% userop.insertRecord(usera);  } else{  %>
          -----
    呵呵。 这样就正常显示了。
我不知道为什么,谁能给我解释一下?原来我本想实现的代码是:
                -----
            if(!rs.next()){   if(userop.insertRecord(usera)){    //这里insertRecord()返回的是boolean类型
 
 %>
             <p>你好,<%=userid%>恭喜你已注册成功!</p>     
      <% } else{  %>
      <p>对不起,注册出错。</p>
<% }else { %>
-----
可是因为上诉原因,为了显示不为空,只能把userop.insertRecord(usera);放后边了,而且都没法判断是否成功插入,很不方便呢!

解决方案 »

  1.   

    这样看着都累啊,建议用JSTL!
      

  2.   

    建议不要在JSP页面上写··最好写在Servlrt中写。
    估计是userop.insertRecord()这的问题,看一下源代码
      

  3.   

    那是因为你先插入之后没有再来跳转页面当然不行,如果你插入之后,再跳转过来,传回一个userid值,一样可以显示的
      

  4.   

    谢谢你的回复,但是userop.insertRecord()是没有问题的,因为,可以插入,插入成功后return true;
      

  5.   

     
          public boolean insertRecord(user usera) throws NamingException, SQLException{
                                               //插入记录
       PreparedStatement pstmt=null;
       String insStr="insert into userlist values (?,?,?,?,?,?,?,?)";
       if(usera==null) return false;
       else{
          try{Context ctx = new InitialContext();    
                   DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");    
                     Connection connection = ds.getConnection(); 
       pstmt=connection.prepareStatement(insStr);
       pstmt.setString(1, usera.getUserid());
       pstmt.setString(2, usera.getPassword());
       pstmt.setString(3, usera.getSex());
       pstmt.setString(4, usera.getBirthday());
       pstmt.setString(5, usera.getPhone());
       pstmt.setString(6, usera.getEmail());
       pstmt.setString(7, usera.getComments());
       pstmt.setString(8, usera.getNickname());
                   pstmt.execute();
                   
     }catch(SQLException e){
     e.printStackTrace();
     }finally{
     pstmt.close();
       connection.close();
     }return true; 
     }
       
    这是我的代码
      

  6.   

    可是返回的是true呀,为什么不能判断呀?请再解释解释
      

  7.   

    问题清楚了吗?我也遇到同样的情况,页面本来显示正常的,当我在jsp页面嵌入if语句后,页面显示为空了,也是第一次接触jsp~= =