我现在的情况是打开页面时,在JSP文件中写JSP代码判断,我想完全使用STRUTS判断,怎么写,感谢

解决方案 »

  1.   

    <%
      String username=(String)session.getAttribute("username");
      if(username==null || "".equals(username)){
         response.sendRedirect("error.jsp");
      }
    %>
    替换成:
    <logic:empty name="username" scope="session">
       <logic:redirect page="/error.jsp"/>
    </logic:empty>
      

  2.   

    感谢楼上,,如果我判断,如果session中没有某个值呢,就输出一个表格,这样怎么写,我不要转向,,感谢
      

  3.   

    <logic:empty name="username" scope="session">
       <table><tr><td>haha</td></tr></table>
    </logic:empty>
    <logic:notEmpty name="username" scope="session">
        //存在显示内容
    </logic:notEmpty>
      

  4.   

    嗯,感谢深蓝,您的答案已经满足我的要求了,,那我想要把HTML这样的标记通过,CLASS输出呢,怎么写》我想把输出表格这样的代码放到类中,,
    是不是这样写更复杂了,得在类中out.prinltn输出HTML标记吧吧?
      

  5.   

    HTML标记可以在类中输出,但是Struts标记是不能在类里输出的,因为Struts标记要在服务端解析.
    如果你在类里输出,那就没有必要用Struts标记判断了,直接if
      

  6.   

    感谢楼上,,我现在感觉将HTML在类中输出,,不太好,,因为万一改一下表格的行或列什么的,,,非常麻烦,因为全部嵌入在out.print中了》?我讲的对吗?感谢
      

  7.   

    这个要看需求的,有的时候在类里输出是非常方便的..比如说一个非常复杂的动态表格的输出,比如下面这个根据给定数字size输出size个单元格,但是要求4行4列,并且每单元隔之间要互相错开颜色变化    int size=15;
        System.out.print("<tr>");
        int a=000,b=8,c=8,flag=0;
        for (int i = 0; i < size; i++) {
          if(flag==0){
            if(c==b){
              c=a;
            }else{
              c=b;
            }
          }
          flag=0;
          System.out.print("<td bgcolor="+ c+ " >" + i + "</td>");
          if ( (i + 1) % 4 == 0 && (i + 1) != size){
            flag=1;
            System.out.println("</tr><tr>");
          }
          if ( (i + 1) == size && (i + 1) % 4 != 0){
            for (int j = 0; j < ( 4-(i + 1) % 4); j++) {
              System.out.print("<td>"+j+"</td>");
            }
          }
        }
        System.out.println("</tr>");